Подписывайтесь на наш Telegram канал и будьте в курсе всех событий.
Николоямская ул., 28, Москва

Laravel 12 и Laravel Cloud

Тейлор демонстрирует Laravel Cloud

На конференции Laracon US в прошлом году Тейлор анонсировал Laravel Cloud, а на Laracon EU показал новую рабочую версию этого продукта. Сейчас стали известны тарифы и дата релиза.

Тарифы Laravel Cloud

Laravel Cloud будет доступен в трех тарифах:

  • Песочница (Оплата только за использование ресурсов)
  • Продакшн ($20 в месяц плюс скидки за использование)
  • Для крупных компаний

Цены на услуги в тарифе Песочницы:

  • Включает 3 пользователя
  • Вычислительные ресурсы (ЦП/Память) — примерно $5 в месяц
  • Serverless Postgres — $0.04 в час / $1.50 за 1 GB
  • Кэш — около $7 в месяц
  • Объектное хранилище — $0.02 за 1 GB

Напомним в начале сентября Laravel привлек $57 млн в рамках раунда Series A от Accel.

Когда будет запуск?

Laravel 12 и Laravel Cloud официально выйдут 24 февраля 2025 года.

Мажорный релиз не будет включать критических изменений, и обновление должно пройти довольно гладко.

Основой Laravel 12 станут новые стартовые наборы, которые предложат возможность выбрать чистую установку или настроить желаемый стек технологий с использованием React, Vue или Livewire.

В стартовых наборах будут доступны компоненты Shadcn, а для стека Livewire — бесплатная версия компонентов Flux.

Каждый стартовый набор будет загружаться из отдельного репозитория на GitHub и установлен напрямую в ваше приложение. Это обеспечит полный контроль над кодом, а не спрятанное его размещение внутри папки vendor, как у обычных пакетов.

Кроме того, будет представлен новый дизайн сайта laravel.com.

Андрей Гурковский

Веду телеграм канал про PHP "Миддл не приговор" @middle_not_final Работаю Backend разработчиком в найме

Временные файлы в PHPStorm

Я работаю в PhpStorm, и часто возникает необходимость где-то временно сохранить текст или сниппет, чтобы потом к нему вернуться или найти нужную информацию. Хочется сделать это быстро и без лишних размышлений, чтобы случайно этот файл не попал в Git. И вот только пару месяцев назад я нашёл удобный способ это делать, не открывая никакие заметки или второй редактор.

Существует сочетание клавиш Cmd + Shift + N для Mac и Alt + Ctrl + Shift + Insert для Windows Linux, которое вызывает окно для создания временного файла:

New Scratch File

В этом окне можно выбрать любой формат или просто обычный Plain Text. Мне удобно создавать файлы в форматах PHP, JSON, а также простые тестовые файлы. Работа с такими файлами происходит так же, как с любыми другими: их можно искать через глобальный поиск Cmd + Shift + O или находить в списке последних редактируемых файлов Cmd + E.

Найти все свои старые временные файлы можно в разделе Scratches and Consoles:

Где смотреть Этот раздел находится в панели Project в самом низу, ниже всех файлов проекта.

Как мне кажется, это очень удобно. В моём окружении никто этим не пользуется, поэтому я решил поделиться этим небольшим лайфхаком.

Кстати, там же сохраняются консоли, если вы делаете запросы в базу данных прямо из PhpStorm.

Если понравилась заметка, подписывайтесь на мой телеграм канал, там я пишу про разработку, PHP и просто про жизнь. @middle_not_final

2

Как создать свой атрибут для внедрения зависимостей в Laravel

В статье “Обзор атрибутов 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-ключей, флагов и т.п. Попробуйте применить подход в своём проекте и поэкспериментировать – скорее всего, вы найдете несколько мест, где такой подход будет полезен.