Laravel Это хорошая практика, чтобы расширить базовый контроллер и расширить его для остальной части контроллера и установить в нем общий логин? - PullRequest
0 голосов
/ 29 февраля 2020

Просто, чтобы уменьшить дублирование кода и простоту реализации, я расширил Laravel base Controller, чтобы можно было устанавливать промежуточное ПО и некоторые другие вещи, которые я могу добавить по мере сборки. Наконец это AdminController Я расширяю со всеми остальными контроллерами, которые будут использоваться в области администратора. Таким образом, я могу унаследовать промежуточное программное обеспечение и другие вещи от AdminController.

Вопрос: Является ли это хорошей практикой, расширяя контроллер в Laravel?

AdminController

class AdminController extends Controller
{
    use AdminMenu;

    public function __construct()
    {

        //auth user
        $this->middleware(['auth', 'admin']);

        //sidenav items
        $this->navItems();

    }

    ...

}

UserController и другие

class UserController extends AdminController
{

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\Response|\Illuminate\View\View
     */
    public function index()
    {
        return view('admin.user.index');
    }

    ...

}

1 Ответ

1 голос
/ 29 февраля 2020

Да, это очень хорошая практика и хороший способ избежать дублирования. Единственное, что вы могли бы сделать по-другому, это переименовать AdminController во что-то вроде AdminBaseController или AdminCommonController, чтобы сделать более очевидным, что это не контроллер с прямой ссылкой.

Если папка вашего контроллера начинает загромождаться, то тот факт, что ряд контроллеров расширяет этот общий базовый контроллер, становится хорошим местом для начала разбивки вещей на подпапки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...