Заметки обо всем

Изменяем дефолтную папку для моделей Laravel

В Laravel модели по умолчанию генерируются в корень директории app, что по ряду причине не удобно и идет в разрез с обычной логикой постоения структуры приложния.

Сегодня мы будем изменять дефолтную папку для моделей на /app/Models.

Шаг 1. Создаем новую консольную команду

php artisan make:command ModelMakeCommand

Шаг 2. Изменяем класс, от которого наследуется класс новой команды

Меняем класс родитель для класса команды с Illuminate\Console\Command на Illuminate\Foundation\Console\ModelMakeCommand

Шаг 3. Удаляем все автосгенерированное содержимое классы и добавляем новый метод

Сразу приведу итоговый код класса:

После этого новые модели, сгенерированные командой php artisan make:model ModelName будут размещены в папкe /app/Models.

Обычно, я также перемещаю в эту папку и модель User, которая уже есть в новой установке Laravel из коробке. В этом случае, нужно будет подправить неймспейс в несколькоих местах. А именно в файлах:

  • config/auth.php

И, если перенести Users до установки авторизации, то это будет единственный файл.