carono / yii2-giix
Yii2 gii generator based on schmunk42 yii2-giiant
Installs: 6 882
Dependents: 1
Suggesters: 0
Security: 0
Stars: 5
Watchers: 3
Forks: 0
Open Issues: 1
Type:yii2-extension
Requires
- carono/codegen: ~0.1
- nette/php-generator: @stable
- yiisoft/yii2: ~2.0
README
composer require carono/yii2-giix
Введение
Компонент для массовой генерации базовых моделей на основе schmunk42/yii2-giiant
Использование
После подключения пакета, через bootstrap добавляется команда в консольное приложение
yii giix
Генерируемые файлы
[app]
[models] Неперезаписываемые модели
[base] Перезаписываемые базовые модели
[query] Неперезаписываемые модели запросов
[base] Перезаписываемые базовые модели запросов
Изменение шаблонов генератора
В конфиге настраиваем генератор
'controllerMap' => [ 'giix' => [ 'class' => 'carono\giix\GiixController', 'templatePath' => '@app/templates/model', 'generator' => [ 'class' => 'carono\giix\generators\model\Generator' ] ], ],
Создаём новый класс, который будет создаваться на каждую таблицу
<?php namespace app\templates\model; use carono\codegen\ClassGenerator; use Nette\PhpGenerator\Method; class Finder extends ClassGenerator { protected function formExtends() { return 'yii\base\Model'; } protected function formClassNamespace() { return 'app\models\finders'; } protected function formClassName() { return $this->params['className'] . 'Finder'; } protected function formOutputPath() { return \Yii::getAlias('@app/models/finders/' . $this->formClassName() . '.php'); } /** * @param Method $method */ public function myFunction($method) { $method->addParameter('param'); $method->addBody('echo "Hello World";'); } }
На выходе получаем в папке models/finders
файлы:
<?php /** * This class is generated using the package carono/codegen */ namespace app\models\finders; class UserFinder extends \yii\base\Model { public function myFunction($param) { echo "Hello World"; } }