Команда Laravel випустила версію v12.18.0, що включає допоміжні методи для шифрування та дешифрування рядків, обмеження на скорочення відповідей HTTP-клієнта за запитом, нову опцію команд для створення пакетних завдань та багато іншого:
Хрістіян Манасієв додав методи 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;
}
//
}
}
Кейлеб Уайт додав атрибут UsePolicy
для налаштування політики, яка використовується з моделлю. Політики автоматично виявляються за умовчанням, але цей атрибут дозволяє вам явно вказати, якщо потрібно:
#[UsePolicy(PostPolicy::class)]
class Post extends Model {}
Атрибут UsePolicy
може використовуватися для перевизначення або точного встановлення політики. Хоча цей атрибут дозволяє явно вказати політику, рекомендуємо ознайомитися з виявленням політик, щоб дізнатися, як Laravel використовує конвенції.
Люк Кузміш додав можливість налаштування поведінки скорочення HTTP-клієнтських винятків за кожним запитом:
Http::truncateExceptionsAt(240)->post(/* ... */)
Деталі дивіться в документації обробки помилок HTTP-клієнта.
Повний список нових функцій і оновлень можна переглянути нижче, а також подивитися зміни між 12.17.0 і 12.18.0 на GitHub. Примітки до випуску взяті з changelog:
through()
в інтерфейсах для виправлення попереджень IDE від @harryqt в https://github.com/laravel/framework/pull/55925ScheduledTaskFailed
не надіслано у разі невдачі запланованого завдання на передньому плані від @achrafAa в https://github.com/laravel/framework/pull/55624Model::unguarded()
від @axlon в https://github.com/laravel/framework/pull/55932RequestException
за запитом від @cosmastech в https://github.com/laravel/framework/pull/55897outOf
більше за 0 у допомозі Lottery
від @mrvipchien в https://github.com/laravel/framework/pull/55969ExceptionHandlerFake
від @cosmastech в https://github.com/laravel/framework/pull/55972