03 августа был выпущен релиз 9.23 фреймворка Laravel 9.
В этой статье я привожу краткое описание этого обновления.
Хорошее чтение.
Новости
Artisan Docs
Именно через Artisan мы выполняем большую часть работы по разработке приложений Laravel.
Мы можем создавать классы, выполнять миграции и тесты.
Однако всякий раз, когда нам требовалось обратиться к документации, приходилось заходить на официальный сайт в поисках нужной информации.
Начиная с этого выпуска, была введена новая команда:
php artisan docs
При его выполнении появится список со всей документацией, доступной в настоящее время на официальном сайте.
При вводе элемента в списке откроется новое стандартное окно браузера с соответствующей документацией.
Для прямого доступа к странице документации без просмотра списка опций просто введите команду php artisan docs
, которой предшествует нужная документация, например Redis
.
Также можно перейти непосредственно к нужной теме.
Например: php artisan docs queues redis
.
Ниже показано выполнение новой команды.
DeleteQuietly
В приложении Laravel жизненный цикл модели вызывает несколько событий, что позволяет разработчику создавать специальные методы для фиксации каждого момента.
Чтобы избежать такого поведения в классах, наследующих от IlluminateDatabaseEloquentModel
, принято использовать метод withoutEvents()
.
Метод withoutEvents()
получает функцию обратного вызова в качестве параметра, делая все инструкции, выполняемые в этой функции, беззвучными.
Реализация этого подхода относительно проста, как мы можем видеть в следующем коде:
use AppModelsProduct;
$product = product::withoutEvents(function () use () {
product::findOrFail(1)->delete();
return product::find(2);
});
Хотя уже существовали методы для тихого сохранения и обновления модели, соответственно saveQuietly()
и updateQuietly()
, отсутствовал метод удаления, который был добавлен в релизе 9.23.
Ниже приведен пример кода, использующего новый метод.
use AppModelsProduct;
$product = Product::find(1);
$product->deleteQuietly();
Жучки
Для пользователей функции Queues, доступной в Laravel, это исправление будет очень кстати.
В сценариях с большим объемом задач, запланированных на одно и то же время, использующих базу данных в памяти Redis, существовала вероятность сбоя базы данных.
Исправление заключается в ограничении количества задач, которые могут быть добавлены в основную очередь, создании вторичной очереди, в которой запланированные задачи находятся в состоянии «ожидания», освобождаясь в зависимости от доступности основной очереди.
Полную информацию об этом релизе можно посмотреть здесь.