Команда Laravel випустила версію v12.18.0, що включає допоміжні методи для шифрування та дешифрування рядків, обмеження на скорочення відповідей HTTP-клієнта за запитом, нову опцію команд для створення пакетних завдань та багато іншого:
# Методи Str для шифрування та дешифрування
Хрістіян Манасієв додав методи encrypt() та decrypt(), які дозволяють виконувати шифрування та дешифрування в ланцюгах рядків:
// Раніше
$encryptedToken = str('secret-api-token')
->pipe(fn(Stringable $str) => encrypt($str->value()))
->prepend('encrypted:')
->append(':end');
// Тепер
$encryptedToken = str('secret-api-token')
->encrypt()
->prepend('encrypted:')
->append(':end');
Деталі можна знайти у Запиті на злиття #55931. Документація по рядках тепер містить методи encrypt та decrypt для екземплярів Stringable.
# Опція команди для створення пакетних завдань
Хафез Дівадарі додав опцію --batched до команди make:job, що дозволяє створювати пакетні завдання:
php artisan make:job ProcessPodcast --batched
Ця команда генерує клас ProcessPodcast:
namespace App\Jobs;
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
class ProcessPodcast implements ShouldQueue
{
use Batchable, Queueable;
/**
* Створити новий екземпляр завдання.
*/
public function __construct()
{
//
}
/**
* Виконати завдання.
*/
public function handle(): void
{
if ($this->batch()->cancelled()) {
// Пакет було скасовано...
return;
}
//
}
}
# Налаштування політики за допомогою PHP атрибуту
Кейлеб Уайт додав атрибут UsePolicy для налаштування політики, яка використовується з моделлю. Політики автоматично виявляються за умовчанням, але цей атрибут дозволяє вам явно вказати, якщо потрібно:
#[UsePolicy(PostPolicy::class)]
class Post extends Model {}
Атрибут UsePolicy може використовуватися для перевизначення або точного встановлення політики. Хоча цей атрибут дозволяє явно вказати політику, рекомендуємо ознайомитися з виявленням політик, щоб дізнатися, як Laravel використовує конвенції.
# Налаштування ліміту скорочення RequestException за запитом
Люк Кузміш додав можливість налаштування поведінки скорочення HTTP-клієнтських винятків за кожним запитом:
Http::truncateExceptionsAt(240)->post(/* ... */)
Деталі дивіться в документації обробки помилок HTTP-клієнта.
# Примітки до випуску
Повний список нових функцій і оновлень можна переглянути нижче, а також подивитися зміни між 12.17.0 і 12.18.0 на GitHub. Примітки до випуску взяті з changelog:
# v12.18.0
- документовано метод
through()в інтерфейсах для виправлення попереджень IDE від @harryqt в https://github.com/laravel/framework/pull/55925 - [12.x] Додано методи шифрування та дешифрування Str від @KIKOmanasijev в https://github.com/laravel/framework/pull/55931
- [12.x] Додано опцію команди для створення пакетних завдань від @hafezdivandari в https://github.com/laravel/framework/pull/55929
- [12.x] виправлення: перетворення Authenticatable з Model в php-документації UserProvider від @calebdw в https://github.com/laravel/framework/pull/54061
- [12.x] новинка: створено атрибут UsePolicy від @calebdw в https://github.com/laravel/framework/pull/55882
- [12.x]
ScheduledTaskFailedне надіслано у разі невдачі запланованого завдання на передньому плані від @achrafAa в https://github.com/laravel/framework/pull/55624 - [12.x] Додано генерики до
Model::unguarded()від @axlon в https://github.com/laravel/framework/pull/55932 - [12.x] Виправлено витік помилок SSL сертифіката та з'єднання як Guzzle винятки від @achrafAa в https://github.com/laravel/framework/pull/55937
- Виправлення попередження про застарілість у PHP 8.3 шляхом забезпечення типу рядка в explode() від @Khuthaily в https://github.com/laravel/framework/pull/55939
- відміна: #55939 від @NickSdot в https://github.com/laravel/framework/pull/55943
- [12.x] новинка: Додано подію WorkerStarting при старті демон-робітника від @Orrison в https://github.com/laravel/framework/pull/55941
- [12.x] Додано можливість налаштування ліміту скорочення
RequestExceptionза запитом від @cosmastech в https://github.com/laravel/framework/pull/55897 - [12.x] новинка: Додано можливість порівняння кастомних ело-контролерів для детальнішої перевірки isDirty від @SanderSander в https://github.com/laravel/framework/pull/55945
- [12.x] виправлено алфавітний порядок від @AhmedAlaa4611 в https://github.com/laravel/framework/pull/55965
- [12.x] Використання рідних іменованих параметрів замість невикористовуваних змінних від @imanghafoori1 в https://github.com/laravel/framework/pull/55964
- [12.x] додано генерики до атрибутів моделі та пов'язаних методів і властивостей від @taka-oyama в https://github.com/laravel/framework/pull/55962
- [12.x] Підтримка PHPUnit 12.2 від @crynobone в https://github.com/laravel/framework/pull/55961
- [12.x] новинка: Додано можливість перевизначати клас роботи SendQueuedNotifications від @Orrison в https://github.com/laravel/framework/pull/55942
- [12.x] Виправлено перевірку часу за тестом для PHP 8.3+ від @platoindebugmode в https://github.com/laravel/framework/pull/55956
- Утиліти трансляції від @taylorotwell в https://github.com/laravel/framework/pull/55967
- [12.x] Видалено невикористовуваний параметр $guarded з методу testChannelNameNormalization від @AhmedAlaa4611 в https://github.com/laravel/framework/pull/55973
- [12.x] Перевірено, що
outOfбільше за 0 у допомозіLotteryвід @mrvipchien в https://github.com/laravel/framework/pull/55969 - [12.x] Дозволено отримувати всі повідомлені винятки з
ExceptionHandlerFakeвід @cosmastech в https://github.com/laravel/framework/pull/55972