В Laravel есть потрясающий набор artisan команд, из которых чаще всего используется make:xxx — например, make:model или make:migration и т. Д. Но знаете ли вы их все? Знаете ли их параметры, которые могут помочь сделать код еще быстрее?
Во-первых, есть команда php artisan list, которая выдаст нам все команды:
make:auth Scaffold basic login and registration views and routes make:channel Create a new channel class make:command Create a new Artisan command make:controller Create a new controller class make:event Create a new event class make:exception Create a new custom exception class make:factory Create a new model factory make:job Create a new job class make:listener Create a new event listener class make:mail Create a new email class make:middleware Create a new middleware class make:migration Create a new migration file make:model Create a new Eloquent model class make:notification Create a new notification class make:observer Create a new observer class make:policy Create a new policy class make:provider Create a new service provider class make:request Create a new form request class make:resource Create a new resource make:rule Create a new validation rule make:seeder Create a new seeder class make:test Create a new test class make:widget Create a new widget (arrilot/laravel-widgets)
Но это не даст нам никакой информации о параметрах и опциях этих команд. Я расскажу вам об этом подробно, начиная с наиболее используемых.
Для этого мы углубимся в код фреймворка, находящийся в папке /vendor/laravel/framework/src/Illuminate, и проверим, какие опции и недокументированные функции есть у этих команд.
1. make:controller
Эта команда создает новый файл контроллера в папке app/Http/Controllers.
Пример использования:
php artisan make:controller UserController
Параметры:
—resource
Контроллер будет содержать методы для каждой из доступных операций с ресурсами — index(), create(), store(), show(), edit(), update(), destroy().
—model=Photo
Если нужно, чтобы методы контроллера указывали на экземпляр модели.
—parent=Photo
Недокументированный параметр, в коде написано «Генерирует вложенный класс контроллера ресурсов», но мне не удалось сгенерировать контроллер таким образом. Вероятно, работа над этим параметром еще в процессе.
2. make:model
Создает новый класс Eloquent модели.
Пример использования:
php artisan make:model Photo
Параметры:
—migration
Создает новый файл миграции для модели.
—controller
Создает новый контроллер для модели.
—resource
Указывает, что сгенерированный контроллер должен контроллером ресурсов.
Да, вы правильно поняли, вы можете сделать так:
php artisan make:model Project --migration --controller --resource
Или даже короче:
php artisan make:model Project -mcr
3. make:migration
Создает новый файл миграции.
Пример использования:
php artisan make:migration create_projects_table
Параметры:
—create=Table
Таблица, которая будет создана.
—table=Table
Таблица для миграции.
—path=Path
Место, где будет создан файл миграции.
4. make:seeder
Создает новый класс наполнения базы данных.
Пример использования:
php artisan make:seeder BooksTableSeeder
Параметры: нет.
5. make:request
Создает новый класс валидации форм в папке app/Http/Requests.
Пример использования:
php artisan make:request StoreBlogPost
Параметры: нет.
6. make:middleware
Создает новый класс посредника.
Пример использования:
php artisan make:middleware CheckAge
Параметры: нет.
7. make:policy
Создает новый класс политики.
Пример использования:
php artisan make:policy PostPolicy
Параметры:
—model=Photo
Модель, к которой применяется политика.
8. make:auth
Пример использования:
php artisan make:auth
Шаблоны и маршруты для логина и регистрации.
Параметры:
—views
Только шаблоны аутентификации.
—force
Перезаписать существующие шаблоны по умолчанию.
9. make:command
Создает новую команду Artisan.
Пример использования:
php artisan make:command SendEmails
Параметры:
—command=Command
Назначаем терминальную команду.
10. make:event
Создает новый класс событий.
Пример использования:
php artisan make:event OrderShipped
Параметры: нет.
11. make:job
Создает новый класс отложенных задач
Пример использования:
php artisan make:job SendReminderEmail
Параметры:
—sync
Задача должна быть синхронной.
12. make:listener
Создает новый класс слушателя событий
Пример использования:
php artisan make:listener SendShipmentNotification
Параметры:
—event=Event
Класс, который будет прослушиваться.
—queued
Указывает, что слушатель должен быть поставлен в очередь.
13. make:mail
Создает новый почтовый класс.
Пример использования:
php artisan make:mail OrderShipped
Параметры:
—markdown
Создает новый Markdown-шаблон для писем
14. make:notification
Создает новый класс уведомлений.
Пример использования:
php artisan make:notification InvoicePaid
Параметры:
—markdown
Создает новый Markdown-шаблон для уведомлений.
15. make:provider
Создает новый класс провайдера
Пример использования:
php artisan make:provider RiakServiceProvider
Параметры: нет.
16. make:test
Создает новый класс тестирования.
Пример использования:
php artisan make:test UserTest
Параметры:
—unit
Создает модуль теста.
Автор: Povilas Korop
Перевод: Алексей Широков
Наш Телеграм-канал — следите за новостями о Laravel.