Абстрактный класс yii\gii\Generator
Это базовый класс для всех классов генераторов.
Экземпляр генератора отвечает за получение пользовательского ввода, его валидацию и использование для генерации соответствующего кода на основе набора файлов шаблонов кода.
Класс генератора обычно должен реализовывать следующие методы:
- getName(): возвращает имя генератора
- getDescription(): возвращает подробное описание генератора
- generate(): генерирует код на основе текущего пользовательского ввода и указанных файлов шаблонов кода. Именно здесь находится основной код генерации кода.
Открытые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $activeValidators | yii\validators\Validator[] | Валидаторы, применимые к текущему $scenario. | yii\base\Model |
| $attributes | array | Значения атрибутов (имя => значение). | yii\base\Model |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту | yii\base\Component |
| $description | string | Подробное описание генератора. | yii\gii\Generator |
| $enableI18N | boolean | Указывает, будут ли строки генерироваться с использованием Yii::t() или обычными строками. | yii\gii\Generator |
| $errors | array | Ошибки для всех атрибутов или указанного атрибута. | yii\base\Model |
| $firstErrors | array | Первые ошибки. | yii\base\Model |
| $iterator | ArrayIterator | Итератор для обхода элементов в списке. | yii\base\Model |
| $messageCategory | string | Категория сообщений, используемая Yii::t() когда $enableI18N является true. | yii\gii\Generator |
| $name | string | Имя генератора кода | yii\gii\Generator |
| $scenario | string | Сценарий, в котором находится данная модель. | yii\base\Model |
| $stickyDataFile | string | Путь к файлу, хранящему значения вязких атрибутов. | yii\gii\Generator |
| $template | string | Имя шаблона кода, выбранного пользователем. | yii\gii\Generator |
| $templatePath | string | Базовый путь к файлам шаблонов, которые используются в данный момент. | yii\gii\Generator |
| $templates | array | Список доступных шаблонов кода. | yii\gii\Generator |
| $validators | ArrayObject|yii\validators\Validator[] | Все валидаторы, объявленные в модели. | yii\base\Model |
Открытые методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызов именованного метода, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверка, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| activeAttributes() | Возвращает имена атрибутов, которые подлежат валидации в текущем сценарии. | yii\base\Model |
| addError() | Добавляет новую ошибку к указанному атрибуту. | yii\base\Model |
| addErrors() | Добавляет список ошибок. | yii\base\Model |
| afterValidate() | Этот метод вызывается после завершения валидации. | yii\base\Model |
| attachBehavior() | Присоединяет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| attributeHints() | Возвращает подсказки атрибутов. | yii\base\Model |
| attributeLabels() | Возвращает метки атрибутов. | yii\gii\Generator |
| attributes() | Возвращает список имён атрибутов. | yii\base\Model |
| autoCompleteData() | Возвращает список значений автодополнения. | yii\gii\Generator |
| beforeValidate() | Этот метод вызывается перед началом валидации. | yii\base\Model |
| behaviors() | Возвращает список поведений, по которым должен вести себя этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| clearErrors() | Удаляет ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| createValidators() | Создаёт объекты валидаторов на основе правил валидации, указанных в rules(). | yii\base\Model |
| defaultTemplate() | Возвращает корневой путь к файлам шаблонов по умолчанию. | yii\gii\Generator |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| extraFields() | Возвращает список полей, которые можно расширить и получить с помощью toArray(). | yii\base\ArrayableTrait |
| fields() | Возвращает список полей, которые по умолчанию должны возвращаться методом toArray(), когда не указаны конкретные поля. | yii\base\ArrayableTrait |
| formName() | Возвращает имя формы, которое должен использовать этот класс модели. | yii\base\Model |
| formView() | Возвращает файл представления для формы ввода генератора. | yii\gii\Generator |
| generate() | Генерирует код на основе текущего ввода пользователя и указанных файлов шаблонов. | yii\gii\Generator |
| generateAttributeLabel() | Генерирует удобочитаемую метку атрибута на основе имени атрибута. | yii\base\Model |
| generateString() | Генерирует строку в зависимости от свойства enableI18N | yii\gii\Generator |
| getActiveValidators() | Возвращает валидаторы, применимые к текущему $scenario. | yii\base\Model |
| getAttributeHint() | Возвращает подсказку для указанного атрибута. | yii\base\Model |
| getAttributeLabel() | Возвращает метку для указанного атрибута. | yii\base\Model |
| getAttributes() | Возвращает значения атрибутов. | yii\base\Model |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединённые к этому компоненту. | yii\base\Component |
| getDescription() | yii\gii\Generator | |
| getErrors() | Возвращает ошибки для всех атрибутов или одного атрибута. | yii\base\Model |
| getFirstError() | Возвращает первую ошибку указанного атрибута. | yii\base\Model |
| getFirstErrors() | Возвращает первую ошибку каждого атрибута в модели. | yii\base\Model |
| getIterator() | Возвращает итератор для обхода атрибутов в модели. | yii\base\Model |
| getName() | yii\gii\Generator | |
| getScenario() | Возвращает сценарий, в котором используется эта модель. | yii\base\Model |
| getStickyDataFile() | yii\gii\Generator | |
| getTemplatePath() | yii\gii\Generator | |
| getValidators() | Возвращает все валидаторы, объявленные в rules(). | yii\base\Model |
| hasErrors() | Возвращает значение, указывающее, есть ли ошибки валидации. | yii\base\Model |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчики, прикрепленные к событию с указанным именем. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| hints() | Возвращает список сообщений подсказок. | yii\gii\Generator |
| init() | Инициализирует объект. | yii\gii\Generator |
| isAttributeActive() | Возвращает значение, указывающее, является ли атрибут активным в текущем сценарии. | yii\base\Model |
| isAttributeRequired() | Возвращает значение, указывающее, является ли атрибут обязательным. | yii\base\Model |
| isAttributeSafe() | Возвращает значение, указывающее, является ли атрибут безопасным для массового назначения. | yii\base\Model |
| isReservedKeyword() | yii\gii\Generator | |
| load() | Заполняет модель входными данными. | yii\base\Model |
| loadMultiple() | Заполняет набор моделей данными от пользователя. | yii\base\Model |
| loadStickyAttributes() | Загружает данные sticky атрибутов из внутреннего файла и заполняет ими генератор. | yii\gii\Generator |
| off() | Отсоединяет существующий обработчик событий от данного компонента. | yii\base\Component |
| offsetExists() | Возвращает, существует ли элемент по указанному смещению. | yii\base\Model |
| offsetGet() | Возвращает элемент по указанному смещению. | yii\base\Model |
| offsetSet() | Устанавливает элемент по указанному смещению. | yii\base\Model |
| offsetUnset() | Устанавливает значение элемента по указанному смещению в null. | yii\base\Model |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| onUnsafeAttribute() | Этот метод вызывается, когда небезопасный атрибут присваивается массово. | yii\base\Model |
| render() | Генерирует код, используя указанную шаблонную и параметры. | yii\gii\Generator |
| requiredTemplates() | Возвращает список файлов шаблонов кода, которые требуются. | yii\gii\Generator |
| rules() | Возвращает правила валидации для атрибутов. | yii\gii\Generator |
| safeAttributes() | Возвращает имена атрибутов, которые можно безопасно присвоить массово в текущем сценарии. | yii\base\Model |
| save() | Сохраняет сгенерированный код в файлы. | yii\gii\Generator |
| saveStickyAttributes() | Сохраняет данные sticky атрибутов во внутренний файл. | yii\gii\Generator |
| scenarios() | Возвращает список сценариев и соответствующих активных атрибутов. | yii\base\Model |
| setAttributes() | Устанавливает значения атрибутов массовым способом. | yii\base\Model |
| setScenario() | Устанавливает сценарий для модели. | yii\base\Model |
| stickyAttributes() | Возвращает список sticky атрибутов. | yii\gii\Generator |
| successMessage() | Возвращает сообщение, которое будет отображено при успешном сохранении сгенерированного кода. | yii\gii\Generator |
| toArray() | Преобразует модель в массив. | yii\base\ArrayableTrait |
| trigger() | Вызывает событие. | yii\base\Component |
| validate() | Выполняет проверку данных. | yii\base\Model |
| validateClass() | Встроенный валидатор, проверяющий, ссылается ли значение атрибута на существующее имя класса. | yii\gii\Generator |
| validateMessageCategory() | Проверяет, не пуста ли категория сообщений, если включена I18N. | yii\gii\Generator |
| validateMultiple() | Проверяет несколько моделей. | yii\base\Model |
| validateNewClass() | Встроенный валидатор, проверяющий, является ли значение атрибута допустимым именем класса с пространством имен. | yii\gii\Generator |
| validateTemplate() | Проверяет выбор шаблона. | yii\gii\Generator |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| resolveFields() | Определяет, какие поля можно вернуть методом toArray(). | yii\base\ArrayableTrait |
Events
| Event | Type | Description | Defined By |
|---|---|---|---|
| EVENT_AFTER_VALIDATE | yii\base\Event | Событие, срабатывающее в конце метода validate() | yii\base\Model |
| EVENT_BEFORE_VALIDATE | yii\base\ModelEvent | Событие, срабатывающее в начале метода validate(). | yii\base\Model |
Constants
| Constant | Value | Description | Defined By |
|---|---|---|---|
| SCENARIO_DEFAULT | 'default' | Имя сценария по умолчанию. | yii\base\Model |
Property Details
$description public read-only property
Подробное описание генератора.
public string getDescription ( )
$enableI18N public property
Будут ли строки генерироваться с использованием Yii::t() или обычных строк.
public boolean $enableI18N = false
$messageCategory public property
Категория сообщений, используемая Yii::t() при $enableI18N включена. По умолчанию app.
public string $messageCategory = 'app'
$name public read-only property
Имя генератора кода
public abstract string getName ( )
$stickyDataFile public read-only property
Путь к файлу, хранящему значения sticky атрибутов.
public string getStickyDataFile ( )
$template открытое свойство
Имя шаблона кода, выбранного пользователем. Значение этого свойства управляется внутренне этим классом.
public string $template = 'default'
$templatePath открытое только для чтения свойство
Корневой путь к файлам шаблонов, которые используются в настоящее время.
public string getTemplatePath ( )
$templates открытое свойство
Список доступных шаблонов кода. Ключи массива — имена шаблонов, а значения — соответствующие пути к шаблонам или псевдонимы путей.
public array $templates = []
Подробное описание методов
attributeLabels() public method
Возвращает метки атрибутов.
Метки атрибутов используются в основном для отображения. Например, для атрибута firstName, мы можем объявить более удобную для пользователя метку First Name, которую можно отобразить конечным пользователям.
По умолчанию метка атрибута генерируется с помощью generateAttributeLabel(). Этот метод позволяет явно указать метки атрибутов.
Обратите внимание, что для наследования меток, определенных в родительском классе, дочерний класс должен объединить родительские метки с дочерними метками, используя функции, такие как array_merge().
| public массив attributeLabels ( ) | ||
|---|---|---|
| return | массив |
Метки атрибутов (имя => метка) |
autoCompleteData() public method
Возвращает список значений автозаполнения.
Ключами массива являются имена атрибутов, а значениями — соответствующие значения автозаполнения. Значения автозаполнения также могут быть вызовами функций, чтобы отложить генерацию данных.
| public массив autoCompleteData ( ) | ||
|---|---|---|
| return | массив |
Список значений автозаполнения |
defaultTemplate() public method
Возвращает корневой путь к файлам шаблонов по умолчанию.
Реализация по умолчанию вернёт подкаталог "templates" каталога, содержащего файл класса генератора.
| public строка defaultTemplate ( ) | ||
|---|---|---|
| return | строка |
Корневой путь к файлам шаблонов по умолчанию. |
formView() public method
Возвращает файл представления для формы ввода генератора.
Реализация по умолчанию вернёт файл "form.php" в каталоге, содержащем файл класса генератора.
| public строка formView ( ) | ||
|---|---|---|
| return | строка |
Файл представления для формы ввода генератора. |
generate() public abstract method
Генерирует код на основе текущего пользовательского ввода и указанных файлов шаблонов кода.
Это основной метод, который должны реализовывать дочерние классы. Пожалуйста, обратитесь к yii\gii\generators\controller\Generator::generate() в качестве примера реализации этого метода.
| public abstract yii\gii\CodeFile[] generate ( ) | ||
|---|---|---|
| return | yii\gii\CodeFile[] |
Список файлов кода, которые нужно создать. |
generateString() public method
Генерирует строку в зависимости от свойства enableI18N
| public строка generateString ( $string = '', $placeholders = [] ) | ||
|---|---|---|
| $string | строка |
Текст для генерации |
| $placeholders | массив |
Плейсхолдеры, используемые для |
getDescription() public method
| public строка getDescription ( ) | ||
|---|---|---|
| return | строка |
Подробное описание генератора. |
getName() public abstract method
| public abstract строка getName ( ) | ||
|---|---|---|
| return | строка |
Имя генератора кода |
getStickyDataFile() public method
| public строка getStickyDataFile ( ) | ||
|---|---|---|
| return | строка |
Путь к файлу, хранящему значения атрибутов. |
getTemplatePath() public method
| public строка getTemplatePath ( ) | ||
|---|---|---|
| return | строка |
Корневой путь к используемым файлам шаблонов. |
| throws | yii\base\InvalidConfigException |
если $template некорректен |
hints() public method
Возвращает список сообщений подсказок.
Ключами массива являются имена атрибутов, а значениями — соответствующие сообщения подсказок. Сообщения подсказок будут отображаться конечным пользователям при заполнении формы генератора.
| public массив hints ( ) | ||
|---|---|---|
| return | массив |
Список сообщений подсказок |
init() public method
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| public void init ( ) |
|---|
isReservedKeyword() public method
| public логическое isReservedKeyword ( $value ) | ||
|---|---|---|
| $value | строка |
Атрибут, который нужно проверить |
| return | логическое |
Является ли значение зарезервированным ключевым словом PHP. |
loadStickyAttributes() public method
Загружает атрибуты со свойствами сохранения из внутреннего файла и заполняет ими генератор.
| public void loadStickyAttributes ( ) |
|---|
render() public method
Генерирует код, используя указанный шаблон кода и параметры.
Обратите внимание, что шаблон кода будет использоваться как PHP-файл.
| public строка render ( $template, $params = [] ) | ||
|---|---|---|
| $template | строка |
Файл шаблона кода. Он должен быть указан как путь к файлу относительно $templatePath. |
| $params | массив |
Список параметров, которые будут переданы в файл шаблона. |
| return | строка |
Сгенерированный код |
requiredTemplates() public method
Возвращает список файлов шаблонов кода, которые требуются.
Производные классы обычно должны переопределять этот метод, если им требуется существование определенных файлов шаблонов.
| public массив requiredTemplates ( ) | ||
|---|---|---|
| return | массив |
Список файлов шаблонов кода, которые требуются. Они должны быть путями к файлам, относительными к $templatePath. |
rules() public method
Возвращает правила валидации для атрибутов.
Правила валидации используются методом validate() для проверки, являются ли значения атрибутов корректными. Дочерние классы могут переопределить этот метод, чтобы объявить другие правила валидации.
Каждое правило — это массив со следующей структурой:
[
['attribute1', 'attribute2'],
'validator type',
'on' => ['scenario1', 'scenario2'],
//...other parameters...
]
где
- список атрибутов: обязательный, указывает массив атрибутов, которые нужно валидировать, для отдельного атрибута можно передать строку;
- тип валидатора: обязательный, указывает используемый валидатор. Это может быть встроенное имя валидатора, имя метода класса модели, анонимная функция или имя класса валидатора.
- on: необязательный, указывает массив сценариев, в которых правило валидации может применяться. Если этот параметр не указан, правило будет применяться ко всем сценариям.
- можно указать дополнительные пары имя-значение для инициализации соответствующих свойств валидатора. Обратитесь к API отдельных классов валидаторов для возможных свойств.
Валидатор может быть либо объектом класса, расширяющего \yii\gii\Validator, либо методом класса модели (называемым встроенным валидатором), имеющим следующий синтаксис:
// $params refers to validation parameters given in the rule function validatorName($attribute, $params)
В вышеприведенном $attribute относится к атрибуту, который в данный момент валидируется, а $params содержит массив параметров конфигурации валидатора, таких как max в случае валидатора string. Значение атрибута, который в данный момент валидируется, можно получить как $this->$attribute. Обратите внимание на $ перед attribute; это используется значение переменной $attribute в качестве имени свойства для доступа.
Yii также предоставляет набор \yii\gii\Validator::builtInValidators. Каждый из них имеет псевдоним, который может быть использован при указании правила валидации.
Ниже приведены некоторые примеры:
[
// built-in "required" validator
[['username', 'password'], 'required'],
// built-in "string" validator customized with "min" and "max" properties
['username', 'string', 'min' => 3, 'max' => 12],
// built-in "compare" validator that is used in "register" scenario only
['password', 'compare', 'compareAttribute' => 'password2', 'on' => 'register'],
// an inline validator defined via the "authenticate()" method in the model class
['password', 'authenticate', 'on' => 'login'],
// a validator of class "DateRangeValidator"
['dateRange', 'DateRangeValidator'],
];
Обратите внимание, что для наследования правил, определённых в родительском классе, дочернему классу необходимо объединить родительские правила с правилами дочернего класса, используя функции, такие как array_merge().
Дочерние классы должны переопределять этот метод следующим образом, чтобы включить родительские правила:
return array_merge(parent::rules(), [
...rules for the child class...
]);
| public массив rules ( ) | ||
|---|---|---|
| возвращает | массив |
Правила валидации |
save() общедоступный метод
Сохраняет сгенерированный код в файлы.
| public boolean save ( $files, $answers, &$results ) | ||
|---|---|---|
| $files | yii\gii\CodeFile[] |
Файлы кода, которые нужно сохранить |
| $answers | массив | |
| $results | строка |
Этот параметр получает значение из этого метода, указывающее сообщения журнала, сгенерированные при сохранении файлов кода. |
| возвращает | boolean |
Были ли файлы успешно сохранены без ошибок. |
saveStickyAttributes() общедоступный метод
Сохраняет сохранённые атрибуты во внутренний файл.
| public void saveStickyAttributes ( ) |
|---|
stickyAttributes() общедоступный метод
Возвращает список сохранённых атрибутов.
Сохранённый атрибут будет запоминать своё значение и инициализирует атрибут этим значением при повторном запуске генератора.
| public массив stickyAttributes ( ) | ||
|---|---|---|
| возвращает | массив |
Список сохранённых атрибутов |
successMessage() общедоступный метод
Возвращает сообщение, которое должно быть отображено при успешном сохранении нового сгенерированного кода.
Дочерние классы могут переопределить этот метод для настройки сообщения.
| public строка successMessage ( ) | ||
|---|---|---|
| возвращает | строка |
Сообщение, которое должно быть отображено при успешном сохранении нового сгенерированного кода. |
validateClass() общедоступный метод
Встроенный валидатор, проверяющий, ссылается ли значение атрибута на существующее имя класса.
Если указан параметр extends, он также проверит, является ли класс дочерним классом класса, представленного параметром extends.
| public void validateClass ( $attribute, $params ) | ||
|---|---|---|
| $attribute | строка |
Валидируемый атрибут |
| $params | массив |
Параметры валидации |
validateMessageCategory() общедоступный метод
Проверяет, не пуста ли категория сообщений, если включён I18N.
| public void validateMessageCategory ( ) |
|---|
validateNewClass() общедоступный метод
Встроенный валидатор, проверяющий, ссылается ли значение атрибута на допустимое имя класса с именованным пространством.
Валидатор проверит, существует ли каталог, содержащий новый файл класса.
| public void validateNewClass ( $attribute, $params ) | ||
|---|---|---|
| $attribute | строка |
Валидируемый атрибут |
| $params | массив |
Параметры валидации |
validateTemplate() общедоступный метод
Валидирует выбор шаблона.
Этот метод проверяет, выбрал ли пользователь существующий шаблон и содержит ли шаблон все необходимые файлы шаблонов, как указано в requiredTemplates().
| public void validateTemplate ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-gii-generator.html