22 677 Монеток
На конференции Laracon US в прошлом году Тейлор анонсировал Laravel Cloud, а на Laracon EU показал новую рабочую версию этого продукта. Сейчас стали известны тарифы и дата релиза.
Laravel Cloud будет доступен в трех тарифах:
Цены на услуги в тарифе Песочницы:
Напомним в начале сентября Laravel привлек $57 млн в рамках раунда Series A от Accel.
Laravel 12 и Laravel Cloud официально выйдут 24 февраля 2025 года.
Мажорный релиз не будет включать критических изменений, и обновление должно пройти довольно гладко.
Основой Laravel 12 станут новые стартовые наборы, которые предложат возможность выбрать чистую установку или настроить желаемый стек технологий с использованием React, Vue или Livewire.
В стартовых наборах будут доступны компоненты Shadcn, а для стека Livewire — бесплатная версия компонентов Flux.
Каждый стартовый набор будет загружаться из отдельного репозитория на GitHub и установлен напрямую в ваше приложение. Это обеспечит полный контроль над кодом, а не спрятанное его размещение внутри папки vendor
, как у обычных пакетов.
Кроме того, будет представлен новый дизайн сайта laravel.com.
22 677 Монеток
В статье “Обзор атрибутов Laravel: что и как использовать” осуждали возможность упрощения внедрения зависимостей с помощью атрибутов. Однако ограничиваться только стандартными атрибутами Laravel не обязательно. Можно создать собственный атрибут, который будет выполнять нужную нам задачу.
Пример создания атрибута, который автоматически подтягивает значения из конфигурации, то есть быть похожим на хелпер config()
:
Для начала создадим класс MyConfig
, который реализует интерфейс Illuminate\Contracts\Container\ContextualAttribute
. Это необходимо для того, чтобы контейнер мог с ним работать.
namespace App\Attributes;
use Attribute;
use Illuminate\Contracts\Container\Container;
use Illuminate\Contracts\Container\ContextualAttribute;
#[Attribute(Attribute::TARGET_PARAMETER)]
class MyConfig implements ContextualAttribute
{
public function __construct(
public string $key,
) {}
public static function resolve(self $attribute, Container $container)
{
return $container->make('config')->get($attribute->key);
}
}
Теперь атрибут #[MyConfig]
готов. Используем его, например, для автоматической подстановки имени приложения в контроллере:
namespace App\Http\Controllers;
use App\Attributes\MyConfig;
class ExampleController extends Controller
{
public function __construct(
#[MyConfig('app.name')] protected string $appName
) {}
public function show(): string
{
return "Имя приложения: {$this->appName}";
}
}
Конечно в Laravel уже имеется атрибут Config
, но главное, что этот пример легко адаптировать под другие задачи, такие как подстановка API-ключей, флагов и т.п.
Попробуйте применить подход в своём проекте и поэкспериментировать – скорее всего, вы найдете несколько мест, где такой подход будет полезен.
{message}