Команда 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Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше