Spec-Zone.ru › CodeIgniter 4

Генераторы командной строки

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

  • Введение
  • Встроенные генераторы
    • make:command
    • make:config
    • make:controller
    • make:entity
    • make:filter
    • make:model
    • make:seeder
    • make:migration
    • make:validation
  • Генерация полного набора шаблонов кода
  • GeneratorTrait

Введение

Все встроенные генераторы находятся в пространстве имён 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

создаст следующие классы:

  1. App\Controllers\User;
  2. App\Models\User;
  3. App\Database\Migrations\<some date here>_User; и
  4. 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API