Yii2: Giiant — шаблоны генератора gii

yii2 giiant шаблоны giiВторая версия php-фреймворка yii, как и первая, включают в себя генератор кода gii. Этот генератор способен создавать рабочие модели, контроллеры и представления для crud (создания, просмотра, изменения и удаления записей) функционала, на основе структуры базы данных, а так же заготовки модулей и контроллеров, дабы помочь разработчику.

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

К настоящему времени, в открытом доступе находятся несколько пользовательских наборов шаблонов для gii и schmunk42/yii2-giiant — как раз, один из них. Рассмотрим его подробнее.

Giiant способен генерировать модели и crud с поддержкой связей между таблицами данных и сложным интерфейсом. Основной целью этого проекта стало объединение большого количества полезных наработок из других проектов, таких как gtc, giix awecrud и других в одном функциональном расширении.

Главные особенности

Генератор моделей

  • создает базовый класс модели и класс для кастомизации модели;
  • префиксы таблиц могут быть исключены из имен классов (не зависит от настроек подключения к базе данных);

Генератор crud

  • файлы моделей, представлений и контроллеров могут быть расположены в подкаталогах;
  • горизонтальная и вертикальная разметки форм;
  • настраиваемый класс кнопок (параметр App Class в разделе Action Button Class);
  • поля ввода, атрибуты, количество столбцов и связи легко настраиваются;
  • функция callback может быть встроена во все виды полей ввода, атрибутов и столбцов (использована технология dependency injection);

Провайдеры

  • CallbackProvider — универсальный провайдер, позволяющий модифицировать поля ввода, атрибуты или столбцы с использованием гибких callback функций;
  • RelationProvider — создает код для обработки связей данных ( ссылки, выпадающие списки и так далее;
  • EditorProvider — создает продвинутый текстовый редактор, вроде Ckeditor, в качестве виджета для ввода текста;
  • DateTimeProvider — создает поля ввода даты и времени.

Как использовать новые шаблоны gii

Достаточно подключить новый генератор в настройках модуля gii:

$config['modules']['gii'] = [
            'class'      => 'yii\gii\Module',
            'allowedIPs' => ['127.0.0.1'],
            'generators' => [
                // Имя генератора
                'giiant-model' => [
                    // Класс генератора
                    'class'     => 'schmunk42\giiant\model\Generator',
                    // Настройки шаблонов
                    'templates' => [
                        // Имя шаблона => путь к шаблону
                        'mymodel' => '@app/giiTemplates/model/default',
                    ]
                ]
            ],
        ];

Использование провайдеров для кастомизации

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

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

Подробнее о генераторе кода giiant для yii2 читайте на его хабе.

1 thought on “Yii2: Giiant — шаблоны генератора gii

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *