Вышла новая версия Laravel 10.12
Laravel 10.12 — новая версия популярного PHP-фреймворка


Кратко о главном в релизе Laravel 10.12

Команда Laravel выпустила версию 10.12, в которой добавлены условные методы для Sleep, новое событие тайм-аута рабочего процесса, параметры проверки временных зон и многое другое.

Условный сон.

Bradie Tilley внес свой вклад в возможность добавления условий в новый класс Sleep, представленный в Laravel 10.10:

Sleep::for(1)->second()->unless($task->completed());
Sleep::for(1)->second()->when($task->pending());
 
// Closures
Sleep::for(1)->second()->unless(fn () => $task->completed());
Sleep::for(1)->second()->when(fn () => $task->pending());

Произошло событие таймаута в работе.

Saeed Hosseini предложил событие JobTimedOut, которое вызывается обработчиком очереди, когда время выполнения задания истекло:

use Illuminate\Queue\Events\JobTimedOut;
 
/**
 * The event to listener mappings for the application.
 *
 * @var array<class-string, array<int, class-string>>
 */
protected $listen = [
    JobTimedOut::class => [
        SendJobTimedOutNotification::class,
    ],
];

Поддержка встроенных вложений для почтовых файлов Markdown.

Nuno Maduro внес вклад в поддержку встроенных вложений для Markdown почтовых файлов:

Этот запрос на исправление исправляет доступ к переменной $message в шаблоне, путем простого ленивого рендеринга разметки в тот момент, когда переменная $message уже доступна как данные представления.

Подробности см. в Pull Request #47140.

HTTP-сообщение о недопустимом методе.

Azim Kordpour предоставил сообщение для HTTP статуса 405 ("Method Not Allowed"), которое можно использовать для проверки того, что маршрут не отвечает на определенные HTTP запросы.

$this->get('/')->assertOk();
 
$this->post('/')->assertMethodNotAllowed();
$this->patch('/')->assertMethodNotAllowed();
$this->put('/')->assertMethodNotAllowed();
$this->delete('/')->assertMethodNotAllowed();

Метод элоквента forceCreateQuietly()

Volodya Kurshudyan внес в Eloquent метод forceCreateQuietly(), который принудительно создает модель, не вызывая никаких событий модели:

Post::forceCreateQuietly($data);

Добавление параметров в правило проверки временных зон.

Artyom Yavdoshchuk добавил поддержку использования параметров с правилом валидации timezone:

'timezone' // works as before
'timezone:Africa' // accepts only Africans timezones
'timezone:All' // works the same as without any parameters
'timezone:All_with_BC' // accepts timezones with Backward Compatibility (Europe/Kiev will be accepted)
'timezone:Per_country,US' // accepts only US timezones

Пример из тестовых примеров в pull request:

$v = new Validator(
    $trans,
    ['foo' => 'australia/sydney'],
    ['foo' => 'Timezone:Australia']
);
 
$this->assertFalse($v->passes());

Примечания к релизу Laravel 10.12

Полный список новых функций и обновлений можно увидеть ниже, а также разницу между 10.11.0 и 10.12.0 на GitHub. Следующие примечания к выпуску взяты непосредственно из журнала изменений:

Добавлено в Laravel 10.12

  • Добавлен Illuminate/Queue/Events/JobTimedOut.php (#47068)
  • Добавлены методы when() и unless() в Illuminate/Support/Sleep (#47114)
  • Добавлена поддержка встроенных вложений для почтовых файлов в формате markdown (#47140)
  • Добавлен Illuminate/Testing/Concerns/AssertsStatusCodes::assertMethodNotAllowed() (#47169)
  • Добавлен метод forceCreateQuietly (#47162)
  • Добавлены параметры в правило проверки временных зон (#47171)

Исправлено в Laravel 10.12

  • Исправление комбинаций singleton и api singletons creatable|destryoable|only|except (#47098)
  • Не используйте пустой key или secret для DynamoDBClient (#47144)

Изменено в Laravel 10.12

  • Удаление сессии при удалении данных аутентификации (#47141)
  • Добавлена обработка ошибок и обеспечение повторного включения ограничений foreign key в Illuminate/Database/Schema/Builder::withoutForeignKeyConstraints() (#47182)

Доработано в Laravel 10.12

  • Удалите неиспользуемые операторы else (#47161)

Перевод с английского официальных новостей Laravel:
https://laravel-news.com/laravel-10-12-0

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню