Laravel уже много лет является одним из самых популярных фреймворков PHP. Он элегантный, масштабируемый, де-факто стал одним из фреймворков для разработчиков и компаний, работающих с PHP. Теперь в Laravel 9 появилось множество новых функций.
Стоит отметить, что выход Laravel 9, которого все так ждали, произойдет очень скоро. Обновления станут следующей LTS-версией фреймворка. Выход планируется в начале 2021 года.
В IT-сообществе давно ждут, когда выйдет laravel 9, поскольку дата релиза изначально была назначена на сентябрь этого года. Но команде Laravel пришлось перенести выпуск на январь 2022 года.
Минимальные требования
Первое и самое главное, Laravel 9 требует для тестирования последние версии PHP 8 и PHPUnit 8. Это потому, что Laravel 9 будет использовать обновленную версию Symfony v6.0, которая также требует PHP 8.
PHP 8 содержит значительные улучшения и функции, от JIT-компиляции до повышения свойств конструктора. Вы можете изучить тесты различных версий PHP и узнать, как обновиться до последней версии PHP 8, здесь, в нашем блоге.
Анонимная миграция классов
Ранее в этом году в Laravel 8.37 появилась новая функция под названием Anonymous Migrations, которая предотвращает конфликты имен классов миграции.
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('people', function (Blueprint $table) {
$table->string('first_name')->nullable();
});
}
};
Новый интерфейс построителя запросов
В новом Laravel 9 подсказки типов очень надежны для рефакторинга, статического анализа и автозавершения кода в их IDE . Это связано с отсутствием общего интерфейса или наследования между Query \ Builder, Eloquent \ Builder и Eloquent \ Relation. Тем не менее, с Laravel 9 разработчики теперь могут пользоваться новым интерфейсом построителя запросов для подсказок типов, рефакторинга и статического анализа.
return Model::query()
->whereNotExists(function($query) {
// $query is a Query\Builder
})
->whereHas('relation', function($query) {
// $query is an Eloquent\Builder
})
->with('relation', function($query) {
// $query is an Eloquent\Relation
});
В этой версии добавлено новое Illuminate\Contracts\Database\QueryBuilder interface, а также Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder трейт, который будет реализовывать интерфейс вместо существующей реализации __call.
Строковые функции PHP 8
В Laravel 9 команда предложила использовать новейшие строковые функции PHP 8.
Эти функции включают в себя использование str_contains(), str_starts_with() и str_ends_with() встроенные в \Illuminate\Support\Str классе.
Перечисленные улучшения Laravel 9 - это краткий обзор того, что ждет разработчиков. Обновленный фреймворк определенно принесет множество исправлений ошибок, функций и, конечно же, множество критических изменений.
Как установить и попробовать версию прямо сейчас
Установка Laravel 9 возможна двумя способами:
1. С помощью composer, выполните следующее:
composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-master
Приведенная выше команда создаст новый проект Laravel с именем проекта laravel-9-dev, используя последнюю версию Laravel 9.
2. Использование глобального интерфейса с командной строки Laravel для создания нового проекта и выбрать создание нового проекта из ветки dev.
Выполните следующую команду, чтобы создать новый проект Laravel 9:
laravel new laravel-9-dev --dev
Теперь, когда вы установили Laravel 9, вы можете войти в новый каталог (laravel-dev) и выполнить команду artisan, чтобы проверить версию:
cd laravel-9-dev
php artisan --version
Он должен представить вам разрабатываемую версию Laravel 9.
Мы вкратце разобрались, что нового в laravel 9, осталось только дождаться релиза и начать пользоваться обновленной версией.