Spec-Zone.ru › Yii 2.0

Класс yii\faker\FixtureController

Все классы | Свойства | Методы | События | Константы
Наследование yii\faker\FixtureController » yii\console\controllers\FixtureController » yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable, yii\base\ViewContextInterface
Использует Трейты yii\test\FixtureTrait
Доступно с версии 2.0.0
Исходный код https://github.com/yiisoft/yii2-faker/blob/master/FixtureController.php

Эта команда создаёт фикстуры на основе заданного шаблона.

Фикстуры являются важными элементами в тестировании юнит-тестов. Для ускорения работы разработчиков эти фикстуры могут быть сгенерированы автоматически на основе подготовленного шаблона. Эта команда является простым оболочкой для библиотеки Faker.

Вы должны настроить свою приложение следующим образом (вы можете использовать любой псевдоним, а не только "fixture"):

'controllerMap' => [
    'fixture' => [
        'class' => 'yii\faker\FixtureController',
    ],
],

Для начала использования команды вам нужно ознакомиться (прочитать руководство) с библиотекой Faker и сгенерировать файлы шаблонов фикстур в соответствии с заданным форматом:

// users.php file under template path (by default @tests/unit/templates/fixtures)
return [
    'name' => $faker->firstName,
    'phone' => $faker->phoneNumber,
    'city' => $faker->city,
    'password' => Yii::$app->getSecurity()->generatePasswordHash('password_' . $index),
    'auth_key' => Yii::$app->getSecurity()->generateRandomString(),
    'intro' => $faker->sentence(7, true),  // generate a sentence with 7 words
];

Если вы используете обратный вызов в качестве значения атрибута, он будет вызван со следующими тремя параметрами:

  • $faker: экземпляр генератора Faker
  • $index: текущий индекс фикстуры. Например, если нужно сгенерировать 3 фикстуры для таблицы пользователей, он будет от 0 до 2.

После установки всех необходимых полей в обратном вызове, вы должны вернуть массив $fixture обратно из обратного вызова.

После подготовки необходимых шаблонов для таблиц вы можете просто сгенерировать фикстуры с помощью команды

yii fixture/generate user

//generate fixtures from several templates, for example:
yii fixture/generate user profile team

В приведенном выше коде "users" - это имя шаблона, после выполнения этой команды будет создан новый файл с таким же именем, что и шаблон, в папке $fixtureDataPath. Вы можете сгенерировать фикстуры для всех шаблонов, например:

yii fixture/generate-all

Эта команда сгенерирует фикстуры для всех файлов шаблонов, которые хранятся в $templatePath и сохранит фикстуры в $fixtureDataPath с именами файлов, совпадающими с именами шаблонов.

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

yii fixture/generate-all --count=3

Вы можете указать различные параметры этой команды:

//generate fixtures in russian language
yii fixture/generate user --count=5 --language=ru_RU

//read templates from the other path
yii fixture/generate-all --templatePath=@app/path/to/my/custom/templates

//generate fixtures into other folders
yii fixture/generate-all --fixtureDataPath=@tests/unit/fixtures/subfolder1/subfolder2/subfolder3

Вы можете увидеть все доступные шаблоны, выполнив команду:

//list all templates under default template path (i.e. '@tests/unit/templates/fixtures')
yii fixture/templates

//list all templates under specified template path
yii fixture/templates --templatePath='@app/path/to/my/custom/templates'

Вы также можете создать собственные поставщики данных для полей пользовательских таблиц, см. руководство библиотеки Faker для получения дополнительной информации (https://github.com/fzaninotto/Faker); После создания пользовательского поставщика, например:

class Book extends \Faker\Provider\Base
{

    public function title($nbWords = 5)
    {
        $sentence = $this->generator->sentence($nbWords);
        return mb_substr($sentence, 0, mb_strlen($sentence) - 1);
    }

}

вы можете использовать его, добавив его в свойство $providers текущей команды. В вашем конфигурационном файле console.php:

   'controllerMap' => [
       'fixture' => [
           'class' => 'yii\faker\FixtureController',
           'providers' => [
               'app\tests\unit\faker\providers\Book',
           ],
       ],
   ],

Публичные свойства

Свойство Тип Описание Определено в
$action yii\base\Action Действие, которое в настоящее время выполняется. yii\base\Controller
$behaviors yii\base\Behavior[] Список присоединенных к этому компоненту поведений. yii\base\Component
$color boolean Включить ANSI цвет в выводе. yii\console\Controller
$count integer Общее количество данных на фикстуру. yii\faker\FixtureController
$defaultAction string Идентификатор действия по умолчанию контроллера. yii\console\controllers\FixtureController
$fixtureDataPath string Псевдоним пути к данным фикстур, куда следует записывать файлы данных. yii\faker\FixtureController
$fixtures yii\test\Fixture[] Загруженные фикстуры для текущего тестового случая. yii\test\FixtureTrait
$generator \Faker\Generator yii\faker\FixtureController
$globalFixtures array Глобальные фикстуры, которые должны применяться при загрузке и выгрузке. yii\console\controllers\FixtureController
$help boolean Выводить ли справочную информацию о текущей команде. yii\console\Controller
$helpSummary string yii\console\Controller
$id string Идентификатор этого контроллера. yii\base\Controller
$interactive boolean Выполнять команду в интерактивном режиме. yii\console\Controller
$language string Язык для генерации данных фикстур. yii\faker\FixtureController
$layout null|string|false Имя макета, который будет применяться к представлениям этого контроллера. yii\base\Controller
$module yii\base\Module Модуль, к которому принадлежит этот контроллер. yii\base\Controller
$modules yii\base\Module[] Все родительские модули, в которых находится этот контроллер. yii\base\Controller
$namespace string Пространство имён по умолчанию для поиска фикстур. yii\console\controllers\FixtureController
$passedOptionValues array Свойства, соответствующие переданным опциям. yii\console\Controller
$passedOptions array Названия опций, переданных во время выполнения. yii\console\Controller
$providers array Дополнительные поставщики данных, которые могут быть созданы пользователем и будут добавлены к генератору Faker. yii\faker\FixtureController
$route string Маршрут (идентификатор модуля, контроллера и действия) текущего запроса. yii\base\Controller
$templatePath string Псевдоним пути к шаблонам, где хранятся шаблоны всех таблиц. yii\faker\FixtureController
$uniqueId string Идентификатор контроллера, дополненный идентификатором модуля (если таковой имеется). yii\base\Controller
$view yii\base\View|yii\web\View Объект представления, который можно использовать для рендеринга представлений или файлов представлений. yii\base\Controller
$viewPath string Директория, содержащая файлы представлений для этого контроллера. yii\base\Controller

Общие методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Object
__clone() Этот метод вызывается после создания объекта путём клонирования существующего. yii\base\Component
__construct() yii\base\Controller
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
actionGenerate() Генерирует фикстуры и заполняет их данными Faker. yii\faker\FixtureController
actionGenerateAll() Генерирует все шаблоны фикстур, которые можно найти. yii\faker\FixtureController
actionLoad() Загружает указанные данные фикстуры. yii\console\controllers\FixtureController
actionTemplates() Отображает все доступные файлы шаблонов фикстур. yii\faker\FixtureController
actionUnload() Выгружает указанные фикстуры. yii\console\controllers\FixtureController
actions() Объявляет внешние действия для контроллера. yii\base\Controller
addProviders() Добавляет поставщиков пользователей в генератор faker. yii\faker\FixtureController
afterAction() Этот метод вызывается сразу после выполнения действия. yii\base\Controller
ansiFormat() Форматирует строку с кодами ANSI yii\console\Controller
attachBehavior() Прикрепляет поведение к этому компоненту. yii\base\Component
attachBehaviors() Прикрепляет список поведений к компоненту. yii\base\Component
beforeAction() Этот метод вызывается сразу перед выполнением действия. yii\faker\FixtureController
behaviors() Возвращает список поведений, которые должен использовать этот компонент. yii\base\Component
bindActionParams() Связывает параметры с действием. yii\console\Controller
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
checkPaths() Проверяет, существуют ли и доступны для записи пути шаблонов и миграций. yii\faker\FixtureController
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
confirm() Запрашивает у пользователя подтверждение, введя y или n. yii\console\Controller
confirmGeneration() Запрашивает у пользователя подтверждение генерации с заданными шаблонами файлов фикстур. yii\faker\FixtureController
createAction() Создаёт действие на основе заданного идентификатора действия. yii\base\Controller
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. yii\base\Component
exportFixtures() Возвращает экспортированное в строковое представление заданного массива фикстур. yii\faker\FixtureController
findLayoutFile() Находит соответствующий файл макета. yii\base\Controller
fixtures() Объявляет фикстуры, необходимые для текущего тестового случая. yii\test\FixtureTrait
generateFixture() Генерирует фикстуру из заданного шаблона yii\faker\FixtureController
generateFixtureFile() Генерирует файл фикстуры по заданному шаблону файла фикстуры. yii\faker\FixtureController
getActionArgsHelp() Возвращает справочную информацию об анонимных аргументах для действия. yii\console\Controller
getActionHelp() Возвращает подробную справочную информацию для указанного действия. yii\console\Controller
getActionHelpSummary() Возвращает однострочное краткое описание указанного действия. yii\console\Controller
getActionOptionsHelp() Возвращает справочную информацию по параметрам действия. yii\console\Controller
getBehavior() Возвращает объект поведения с заданным именем. yii\base\Component
getBehaviors() Возвращает все поведения, прикреплённые к этому компоненту. yii\base\Component
getFixture() Возвращает указанную фикстуру. yii\test\FixtureTrait
getFixtures() Возвращает объекты фикстур, как указано в globalFixtures() и fixtures(). yii\test\FixtureTrait
getGenerator() Возвращает экземпляр генератора Faker. Геттер для приватного свойства. yii\faker\FixtureController
getHelp() Возвращает справочную информацию для этого контроллера. yii\console\Controller
getHelpSummary() Возвращает однострочное краткое описание этого контроллера. yii\console\Controller
getModules() Возвращает все родительские модули этого контроллера. yii\base\Controller
getOptionValues() Возвращает свойства, соответствующие параметрам для действия. Дочерние классы могут переопределить этот метод, чтобы указать возможные свойства. yii\console\Controller
getPassedOptionValues() Возвращает свойства, соответствующие переданным параметрам. yii\console\Controller
getPassedOptions() Возвращает имена допустимых параметров, переданных во время выполнения. yii\console\Controller
getRoute() Возвращает маршрут текущего запроса. yii\base\Controller
getUniqueId() Возвращает уникальный идентификатор контроллера. yii\base\Controller
getView() Возвращает объект представления, который может быть использован для рендеринга представлений или файлов представлений. yii\base\Controller
getViewPath() Возвращает каталог, содержащий файлы представлений для данного контроллера. yii\base\Controller
globalFixtures() Объявляет фикстуры, общие для различных тестовых случаев. yii\test\FixtureTrait
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчики, прикрепленные к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определен ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\base\Object
initFixtures() Инициализирует фикстуры yii\test\FixtureTrait
isColorEnabled() Возвращает значение, указывающее, включен ли цвет ANSI. yii\console\Controller
loadFixtures() Загружает указанные фикстуры. yii\test\FixtureTrait
needToApplyAll() Проверяет, необходимо ли применить все фикстуры. yii\console\controllers\FixtureController
notifyNothingToLoad() Уведомляет пользователя, что нет фикстур для загрузки в соответствии с входными условиями. yii\console\controllers\FixtureController
notifyNothingToUnload() Уведомляет пользователя, что нет фикстур для разгрузки в соответствии с входными условиями. yii\console\controllers\FixtureController
off() Отсоединяет существующий обработчик событий от этого компонента. yii\base\Component
on() Прикрепляет обработчик событий к событию. yii\base\Component
optionAliases() Возвращает псевдонимы параметров. yii\console\controllers\FixtureController
options() Возвращает имена допустимых параметров для действия (id). Параметр требует существования открытой переменной-члена, имя которой — имя параметра. yii\faker\FixtureController
prompt() Запрашивает у пользователя ввод и проверяет его yii\console\Controller
render() Рендерит представление и применяет макет, если он доступен. yii\base\Controller
renderContent() Рендерит статическую строку, применяя макет. yii\base\Controller
renderFile() Рендерит файл представления. yii\base\Controller
renderPartial() Рендерит представление без применения макета. yii\base\Controller
run() Выполняет запрос, указанный в терминах маршрута. yii\base\Controller
runAction() Выполняет действие с указанным идентификатором действия и параметрами. yii\console\Controller
select() Предоставляет пользователю возможность выбора из вариантов. Ввод «?» отобразит список вариантов с их пояснениями. yii\console\Controller
setView() Устанавливает объект представления, который будет использоваться этим контроллером. yii\base\Controller
setViewPath() Устанавливает каталог, содержащий файлы представлений. yii\base\Controller
stderr() Выводит строку в STDERR yii\console\Controller
stdout() Выводит строку в STDOUT yii\console\Controller
trigger() Вызывает событие. yii\base\Component
unloadFixtures() Разгружает указанные фикстуры. yii\test\FixtureTrait

Защищенные методы

Метод Описание Определено в
createFixtures() Создает указанные экземпляры фикстур. yii\test\FixtureTrait
findTemplatesFiles() Возвращает массив, содержащий имена файлов шаблонов фикстур. Вы можете указать, какие файлы искать, используя данный параметр. yii\faker\FixtureController
getActionMethodReflection() yii\console\Controller
notifyNoTemplatesFound() Уведомляет пользователя, что не найдено ни одного файла, соответствующего заданным условиям. yii\faker\FixtureController
notifyNotFoundTemplates() Уведомляет пользователя, что заданные файлы шаблонов фикстур не найдены. yii\faker\FixtureController
notifyTemplatesCanBeGenerated() Уведомляет пользователя о шаблонах, которые могут быть сгенерированы. yii\faker\FixtureController
notifyTemplatesGenerated() Уведомляет пользователя, что заданные файлы шаблонов фикстур были сгенерированы. yii\faker\FixtureController
parseDocCommentDetail() Возвращает полное описание из блоков документации. yii\console\Controller
parseDocCommentSummary() Возвращает первую строку блока документации. yii\console\Controller
parseDocCommentTags() Парсит блок комментариев на метки. yii\console\Controller

События

Событие Тип Описание Определено в
EVENT_AFTER_ACTION yii\base\ActionEvent Событие, срабатывающее сразу после выполнения действия контроллера. yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent Событие, срабатывающее непосредственно перед выполнением действия контроллера. yii\base\Controller

Постоянные значения

Константа Значение Описание Определено в
EXIT_CODE_ERROR 1 yii\console\Controller
EXIT_CODE_NORMAL 0 yii\console\Controller

Подробное описание свойств

$count общедоступное свойство

Общее количество данных на фикстуру. По умолчанию равно 2.

public integer $count = 2

$fixtureDataPath общедоступное свойство

Псевдоним пути к данным фикстуры, куда должны записываться файлы данных.

public string $fixtureDataPath = '@tests/unit/fixtures/data'

$generator общедоступное только для чтения свойство

public \Faker\Generator getGenerator ( )

$language общедоступное свойство

Язык, используемый при генерации данных фикстуры.

public string $language = null

$providers общедоступное свойство

Дополнительные поставщики данных, которые могут быть созданы пользователем и будут добавлены к генератору Faker. Дополнительная информация в документации библиотеки Faker.

public array $providers = []

$templatePath общедоступное свойство

Псевдоним пути к шаблонам, где хранятся все шаблоны таблиц.

public string $templatePath = '@tests/unit/templates/fixtures'

Подробное описание методов

actionGenerate() public method

Генерирует фикстуры и заполняет их данными Faker.

Например,

//generate fixtures in russian language
yii fixture/generate user --count=5 --language=ru_RU

//generate several fixtures
yii fixture/generate user profile team
public void actionGenerate ( )
throws yii\base\InvalidParamException
throws yii\console\Exception

actionGenerateAll() public method

Генерирует все шаблоны фикстур, которые могут быть найдены.

public void actionGenerateAll ( )

actionTemplates() public method

Отображает все доступные файлы шаблонов фикстур.

public void actionTemplates ( )

addProviders() public method

Добавляет поставщиков пользователей в генератор Faker.

public void addProviders ( )

beforeAction() public method

Этот метод вызывается непосредственно перед выполнением действия.

Метод вызовет событие EVENT_BEFORE_ACTION. Значение возвращаемого методом результата определит, следует ли продолжать выполнение действия.

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

Если вы переопределяете этот метод, ваш код должен выглядеть следующим образом:

public function beforeAction($action)
{
    // your custom code here, if you want the code to run before action filters,
    // which are triggered on the [[EVENT_BEFORE_ACTION]] event, e.g. PageCache or AccessControl

    if (!parent::beforeAction($action)) {
        return false;
    }

    // other custom code here

    return true; // or false to not run the action
}
public boolean beforeAction ( $action )
$action yii\base\Action

Действие, подлежащее выполнению.

return boolean

Следует ли продолжить выполнение действия.

checkPaths() public method

Проверяет, существуют ли и доступны для записи пути к шаблонам и миграциям.

public void checkPaths ( )

confirmGeneration() public method

Запрашивает у пользователя подтверждение генерации с заданными файлами шаблонов фикстур.

public boolean confirmGeneration ( $files )
$files array

exportFixtures() public method

Возвращает экспортированное в строковое представление массив заданных фикстур.

public string exportFixtures ( $fixtures )
$fixtures array
return string

Формат экспортированных фикстур

findTemplatesFiles() protected method (available since version 2.0.4)

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

protected array findTemplatesFiles ( array $templatesNames = [] )
$templatesNames array

Имена файлов шаблонов для поиска. Если пусто, то будут найдены все файлы.

generateFixture() public method

Генерирует фикстуру из заданного шаблона

public array generateFixture ( $_template_, $index )
$_template_ string

Файл шаблона фикстуры

$index integer

Текущий индекс фикстуры

return array

Фикстура

generateFixtureFile() public method

Генерирует файл фикстуры по заданному файлу шаблона фикстуры.

public void generateFixtureFile ( $templateName, $templatePath, $fixtureDataPath )
$templateName string

Имя файла шаблона

$templatePath string

Путь, где хранятся шаблоны

$fixtureDataPath string

Путь к данным фикстуры, куда должен быть записан сгенерированный файл

getGenerator() public method

Возвращает экземпляр генератора Faker. Геттер для закрытого свойства.

public \Faker\Generator getGenerator ( )

notifyNoTemplatesFound() protected method (available since version 2.0.4)

Уведомляет пользователя, что не было найдено ни одного файла, соответствующего заданным условиям.

protected void notifyNoTemplatesFound ( )

notifyNotFoundTemplates() protected method (available since version 2.0.4)

Уведомляет пользователя, что заданные файлы шаблонов фикстур не были найдены.

protected void notifyNotFoundTemplates ( $templatesNames )
$templatesNames array

notifyTemplatesCanBeGenerated() protected method (available since version 2.0.4)

Уведомляет пользователя о шаблонах, которые могут быть сгенерированы.

protected void notifyTemplatesCanBeGenerated ( $templatesNames )
$templatesNames array

notifyTemplatesGenerated() protected method (available since version 2.0.4)

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

protected void notifyTemplatesGenerated ( $templatesNames )
$templatesNames array

options() public method

Возвращает имена допустимых опций для действия (id). Опция требует наличия публичного члена, имя которого совпадает с именем опции.

Подклассы могут переопределить этот метод, чтобы указать возможные опции.

Обратите внимание, что значения, заданные с помощью опций, недоступны до вызова beforeAction().

public string[] options ( $actionID )
$actionID string

Идентификатор действия текущего запроса

return string[]

Имена опций, допустимых для действия

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-faker-fixturecontroller.html

Spec-Zone.ru

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