Laravel 9 — обновление версии

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, существовала вероятность сбоя базы данных.

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


Полную информацию об этом релизе можно посмотреть здесь.

Оцените статью
devanswers.ru
Добавить комментарий