• Время чтения ~1 мин
  • 28.07.2023

Laravel 11 не планируется выпускать до конца года, но некоторые новые функции были опубликованы, и Тейлор претерпевает некоторые большие новые улучшения в своем выступлении на Laracon:

Streamlined Directory Structure

Пока что это всего лишь предварительный просмотр бета-версии. Они могут измениться, но на данный момент вот чего ожидать...

Контроллеры больше ничего не расширяют по умолчанию.

Больше никакого каталога промежуточного программного обеспечения. В настоящее время Laravel включает в себя девять промежуточных программ, и многие из них вы никогда не настроите. Однако, если вы хотите настроить их, это перемещается в App/ServiceProvider. Например:

public function boot(): void
{
    EncryptCookies::except(['some_cookie']);
}

Больше нет Http/Kernel

Большинство вещей, которые вы раньше могли делать в ядре, теперь вы можете делать в Bootstrap/App.

return Application::configure()
    ->withProviders ()
    -›withRouting(
        web: __DIR__.'/../routes/web.php'
        commands: __DIR__.'/../routes/console.php',
    )
    ->withMiddleware(function(Middleware Smiddleware) {
        $middleware->web(append: LaraconMiddleware::class):
    })

Изменения

приведений моделей Приведения моделей теперь определяются как метод, а не как свойство. Когда мы определяем как метод, мы можем делать другие вещи, например, вызывать другие методы непосредственно из приведений. Вот пример использования нового Laravel 11 :

protected function casts(): array
{
    return [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        'options'=› AsEnumCollection::of(UserOption::class),
    ];
}

Config Changes

Laravel имеет много конфигурационных файлов, и Laravel 11 AsEnumCollectionудаляет их, и все параметры конфигурации каскадом опускаются вниз. Он .env был расширен и теперь включает в себя все параметры, которые вы хотите установить.

Для сопряжения с этим есть новая config:publish команда, поэтому вы можете вернуть любую конфигурацию, которая может вам понадобиться. Даже вернув их, новая каскадная функция позволяет вам удалить все параметры, которые вы не хотите настраивать.

Уменьшенные миграции по умолчанию Когда

вы запускаете новое приложение Laravel, оно поставляется с некоторыми миграциями по умолчанию с 2014 и 2019 годов. Теперь они будут поставляться с удаленными датами и перемещены всего в два файла.

Изменения маршрутов

По умолчанию будет только два файла маршрутизации: console.php и web.php. Маршруты API теперь станут добровольными через php artisan install:api, предоставив вам файл маршрутов API и Laravel Sanctum.

То же самое с вещанием веб-сокетов, php artisan install:broadcasting.

Консольное ядро удалено

Консольное ядро удаляется, и вместо этого вы сможете определять консольные команды прямо в routes/console.php.

Минимальная поддержка

PHP 8.2 Это было раннее решение, но для приложений Laravel 11 требуется минимум PHP 8.2. Если вы используете более старую версию PHP, сейчас самое время обновить ее.

Подведение итогов

Пока что все эти функции считаются бета-версией Laravel 11 и предназначены для улучшения вашего рабочего процесса. Все может измениться и, вероятно, изменится, и мы будем обновлять этот пост по мере объявления о новых функциях.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297