Генераторы командной строки
CodeIgniter4 теперь поставляется с генераторами для облегчения создания контроллеров, моделей, сущностей и т. д. Вы также можете сгенерировать полный набор файлов одной командой.
Введение
Все встроенные генераторы находятся в пространстве имён Generators при отображении с помощью php spark list. Чтобы просмотреть полное описание и информацию об использовании конкретного генератора, используйте команду:
> php spark help <generator_command>
где <generator_command> будет заменено на команду для проверки.
Встроенные генераторы
CodeIgniter4 поставляется со следующими генераторами по умолчанию.
make:command
Создаёт новую команду spark.
Использование:
make:command <name> [options]
Аргумент:
-
name: Имя класса команды. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--command: Имя команды для запуска в spark. По умолчаниюcommand:name. -
--group: Группа/пространство имён команды. По умолчаниюCodeIgniterдля основных команд иGeneratorsдля команд генерации. -
--type: Тип команды, будь то командаbasicили командаgenerator. По умолчаниюbasic. -
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:config
Создаёт новый файл конфигурации.
Использование:
make:config <name> [options]
Аргумент:
-
name: Имя класса конфигурации. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:controller
Создаёт новый контроллер.
Использование:
make:controller <name> [options]
Аргумент:
-
name: Имя класса контроллера. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--bare: Расширяется отCodeIgniter\ControllerвместоBaseController. -
--restful: Расширяется от RESTful ресурса. Возможные значенияcontrollerиpresenter. По умолчаниюcontroller. -
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:entity
Создаёт новый файл сущности.
Использование:
make:entity <name> [options]
Аргумент:
-
name: Имя класса сущности. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:filter
Создаёт новый фильтр.
Использование:
make:filter <name> [options]
Аргумент:
-
name: Имя класса фильтра. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:model
Создаёт новую модель.
Использование:
make:model <name> [options]
Аргумент:
-
name: Имя класса модели. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--dbgroup: Группа базы данных для использования. По умолчаниюdefault. -
--return: Установите тип возвращаемого значения изarray,object, илиentity. По умолчаниюarray. -
--table: Укажите другое имя таблицы. По умолчанию склонение имени класса во множественном числе. -
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:seeder
Создаёт новый сиддер.
Использование:
make:seeder <name> [options]
Аргумент:
-
name: Имя класса сиддера. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:migration
Создаёт новый миграционный файл.
Использование:
make:migration <name> [options]
Аргумент:
-
name: Имя класса миграции. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--session: Создать файл миграции для сессий базы данных. -
--table: Установите имя таблицы для использования в сессиях базы данных. По умолчаниюci_sessions. -
--dbgroup: Установите группу базы данных для сессий базы данных. По умолчанию группаdefault. -
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
make:validation
Создаёт новый файл валидации.
Использование:
make:validation <name> [options]
Аргумент:
-
name: Имя класса валидации. [ОБЯЗАТЕЛЬНО]
Параметры:
-
--namespace: Установите корневое пространство имён. По умолчанию значениеAPP_NAMESPACE. -
--suffix: Добавьте суффикс компонента к имени генерируемого класса. -
--force: Установите этот флаг для перезаписи существующих файлов в пункте назначения.
Примечание
Нужно, чтобы сгенерированный код находился в подпапке? Допустим, если вы хотите создать контроллер, который будет находиться в подпапке Admin основной папки Controllers, вам нужно будет добавить подпапку к имени класса, например: php spark make:controller admin/login. Эта команда создаст контроллер Login в подпапке Controllers/Admin с пространством имён App\Controllers\Admin.
Примечание
Работаете с модулями? Генерация кода установит корневое пространство имён по умолчанию APP_NAMESPACE. Если вам нужно, чтобы сгенерированный код находился в другом месте в пространстве имён модуля, убедитесь, что вы установили параметр --namespace в вашей команде, например, php spark make:model blog --namespace Acme\Blog.
Предупреждение
Убедитесь, что при установке параметра --namespace предоставленное пространство имён является допустимым пространством имён, определённым в массиве $psr4 в Config\Autoload или определённым в файле автозагрузки composer. В противном случае генерация кода будет прервана.
Предупреждение
Использование migrate:create для создания файлов миграций устарело. Оно будет удалено в будущих версиях. Пожалуйста, используйте make:migration в качестве замены. Также, пожалуйста, используйте make:migration --session вместо устаревшего session:migration.
Генерация полного набора шаблонов кода
Иногда на этапе разработки мы создаём функциональности группами, например, группу Админ. Эта группа будет содержать свои контроллеры, модели, миграции или даже сущности. Возможно, вам захочется ввести каждую команду генератора по отдельности в терминале, и вам может захотеться иметь одну команду генерации, которая управляет ими всеми.
Не волнуйтесь! CodeIgniter4 также поставляется со специальной командой make:scaffold, которая представляет собой обертку для команд генерации контроллеров, моделей, сущностей, миграций и сиддеров. Вам нужно только имя класса, которое будет использовано для именования всех сгенерированных классов. Кроме того, отдельные параметры, поддерживаемые каждой командой генератора, распознаются командой scaffolding.
Запуск этой команды в терминале:
php spark make:scaffold user
создаст следующие классы:
-
App\Controllers\User; -
App\Models\User; -
App\Database\Migrations\<some date here>_User; и -
App\Database\Seeds\User.
Для включения класса Entity в сгенерированные файлы, просто добавьте --return entity к команде, и он будет передан генератору модели.
GeneratorTrait
Все команды генератора должны использовать GeneratorTrait для полноценного использования его методов, используемых в генерации кода.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/cli/cli_generators.html