Spec-Zone.ru › Yii 2.0

Абстрактный класс yii\gii\Generator

Все классы | Свойства | Методы | События | Константы
Наследование yii\gii\Generator » yii\base\Model » yii\base\Component » yii\base\Object
Реализует ArrayAccess, IteratorAggregate, yii\base\Arrayable, yii\base\Configurable
Использует Трейты yii\base\ArrayableTrait
Подклассы yii\gii\generators\controller\Generator, yii\gii\generators\crud\Generator, yii\gii\generators\extension\Generator, yii\gii\generators\form\Generator, yii\gii\generators\model\Generator, yii\gii\generators\module\Generator, yii\mongodb\gii\model\Generator, yii\sphinx\gii\model\Generator
Доступен с версии 2.0
Исходный код https://github.com/yiisoft/yii2-gii/blob/master/Generator.php

Это базовый класс для всех классов генераторов.

Экземпляр генератора отвечает за получение пользовательского ввода, его валидацию и использование для генерации соответствующего кода на основе набора файлов шаблонов кода.

Класс генератора обычно должен реализовывать следующие методы:

  • 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 массив

Плейсхолдеры, используемые для Yii::t()

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

Spec-Zone.ru

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