Итак, у меня есть вопрос, который, будучи базирующимся на Laravel, может оказаться просто базовым в PHP, который я либо пропустил, либо забыл. Или может просто оказаться, что не существует "учебника / чистого / стандартного" способа сделать это.
Вопрос о беспорядке
В любом случае, я создаю достаточное количество запросов формы в Laravel (это значительное «приложение»), и меня постоянно поражает, насколько излишне избыточным может быть их включение:
<?php
namespace App\Http\Controllers\Account;
use App\Http\Requests\SubscriberRequest;
use App\Http\Requests\SubscriberUpdateRequest;
use App\Http\Requests\SubscriberExtRequest;
use App\Http\Requests\SubscriberExtUpdateRequest;
class MailingListController extends BaseController
{
public function store(SubscriberRequest)
{
// code here
}
public function update(SubscriberUpdateRequest)
{
// code here
}
public function ExtCreate(SubscriberExtRequest)
{
// code here
}
public function ExtUpdate(SubscriberExtUpdateRequest)
{
// code here
}
}
Альтернатива
Подняв его выше, вы убираете помехи из самого контроллера, но в итоге получаете больше работы по его созданию и обслуживанию. Я считаю, что проще сделать это так:
<?php
namespace App\Http\Controllers\Account;
class MailingListController extends BaseController
{
public function store(\App\Http\Requests\SubscriberRequest)
{
// code here
}
public function update(\App\Http\Requests\SubscriberUpdateRequest)
{
// code here
}
public function ExtCreate(\App\Http\Requests\SubscriberExtRequest)
{
// code here
}
public function ExtUpdate(\App\Http\Requests\SubscriberExtUpdateRequest)
{
// code here
}
}
Вопрос
Очевидно, что любой из этих способов "хорош" и "действителен". Это вряд ли приоритетная проблема. Но все запросы форм поступают из одного пространства имен. И когда я работаю с парой дюжин контроллеров, набор / копирование может быть утомительным.
Итак, учитывая все это, существует ли "идеальное" решение на основе классов PHP для этой проблемы? И, в случае неудачи, я должен прибегнуть к константе / переменной всего приложения? (Или есть какой-нибудь другой трюк, который кто-нибудь порекомендует?)