У Laravel покращено обробку enum-запитів завдяки підтримці значень за замовчуванням, що спростило валідацію та логіку запасних варіантів у ваших додатках
Раніше обробка відсутніх чи недійсних значень enum вимагала написання додаткового коду для забезпечення запасних варіантів. Тепер оновлений метод enum приймає третій параметр для значень за замовчуванням:
$reportFormat = request()->enum('format', ReportFormat::class, ReportFormat::PDF);
$sortDirection = request()->enum('direction', SortDirection::class, SortDirection::Ascending);
Ця вдала зміна зменшує кількість повторюваного коду та робить обробку enum більш декларативною у логіці вашого застосунку
class ReportController extends Controller
{
public function generateSalesReport(Request $request)
{
$configuration = [
'output_format' => $request->enum('format', OutputFormat::class, OutputFormat::Excel),
'time_range' => $request->enum('range', TimeRange::class, TimeRange::LastMonth),
'detail_level' => $request->enum('detail', DetailLevel::class, DetailLevel::Summary),
'export_type' => $request->enum('export', ExportType::class, ExportType::Download)
];
return $this->buildReport($configuration);
}
public function configureNotifications(Request $request)
{
$settings = [
'delivery_method' => $request->enum('method', DeliveryMethod::class, DeliveryMethod::Email),
'priority_level' => $request->enum('priority', Priority::class, Priority::Normal),
'frequency' => $request->enum('frequency', Frequency::class, Frequency::Weekly),
'format_type' => $request->enum('format', NotificationFormat::class, NotificationFormat::HTML)
];
$this->saveNotificationSettings($settings);
return response()->json(['status' => 'updated', 'settings' => $settings]);
}
private function buildReport(array $config)
{
$reportBuilder = new SalesReportBuilder();
return $reportBuilder
->setFormat($config['output_format'])
->setTimeRange($config['time_range'])
->setDetailLevel($config['detail_level'])
->setExportType($config['export_type'])
->generate();
}
}
Функція параметра за замовчуванням усуває необхідність в умовній логіці, роблячи обробку запитів на основі enum більш передбачуваною та легшою для підтримки у ваших Laravel-додатках
Ви хочете навчитися, як інтегрувати Google OAuth у вашому проекті Laravel, використовуючи Socialite? Дізнайтеся, як налаштувати доступ до сервісів Google, таких як Календар, у нашій сьогоднішній статті
Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання
Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!