Laravel / PHP Сокращения для путей к пространствам имен - PullRequest
0 голосов
/ 14 января 2019

Итак, у меня есть вопрос, который, будучи базирующимся на 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 для этой проблемы? И, в случае неудачи, я должен прибегнуть к константе / переменной всего приложения? (Или есть какой-нибудь другой трюк, который кто-нибудь порекомендует?)

1 Ответ

0 голосов
/ 14 января 2019

Если вы используете php 7 +

Вот хороший способ сохранить чистоту включения в ваше пространство имен.

use some\namespace\{ClassA, ClassB, ClassC as C};
...