2017 © Pedro Peláez
 

yii2-extension yii2-giiant

Gii CRUD generator for Yii 2 Framework

image

pafnow/yii2-giiant

Gii CRUD generator for Yii 2 Framework

  • Tuesday, November 11, 2014
  • by pafnow
  • Repository
  • 1 Watchers
  • 0 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 100 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

What is changed?

  • Traits for CRUD controllers action
  • RelationProvider orderBy displayed name in dropdown fields
  • Custom dbType yii2image ad yii2file for image and file automatic model generation
  • CRUD FileProvider to handle image upload

yii2-giiant

Extended models and CRUDs for Gii, the code generator of Yii2 Framework, (*1)

PROJECT IS IN DEVELOPMENT STAGE!, (*2)

What is it?

Giiant provides templates for model and CRUD generation with relation support and a sophisticated UI. A main project goal is porting many features and learnings from gtc, giix, awecrud and others into one solution., (*3)

Installation

The preferred way to install this extension is through composer., (*4)

composer.phar require schmunk42/yii2-giiant:"*"

The generators are registered automatically in the application bootstrap process, if the Gii module is enabled, (*5)

Usage

Visit your application's Gii (eg. index.php?r=gii and choose one of the generators from the main menu screen., (*6)

For basic usage instructions see the Yii2 Guide section for Gii., (*7)

Command Line Batches

You can run batches of base-model and CRUD generation with the build in batch command:, (*8)

./yii giiant-batch --tables=profile,social_account,user,token

It will process the given tables, for more details see ./yii help giiant-batch., (*9)

Features

Model generator

  • generates separate model classes to customize and base models classes to regenerate
  • table prefixes can be stipped off model class names (not bound to db connection setting)

CRUD generator

  • model, view and controller locations can be customized to use subfolders
  • horizontal and vertical form layout
  • action button class customization
  • input, attribute, column and relation customization with provider queue
  • callback provider to inject any kind of code for inputs, attributes and columns via dependency injection

Providers

  • CallbackProvider universal provider to modify any input, attribute or column with highly flexible callback functions
  • RelationProvider renders code for relations (eg. links, dropdowns)
  • EditorProvider renders RTE, like Ckeditor as input widget
  • DateTimeProvider renders date inputs

Customization with providers

In many cases you want to exchange i.e. some inputs with a customized version for your project. Examples for this use-case are editors, file-uploads or choosers, complex input widget with a modal screen, getting data via AJAX and so on., (*10)

With Giiant Providers you can create a queue of instances which may provide custom code depending on more complex rules. Take a look at some existing giiant providers., (*11)

Configure providers, add this to your provider list in the form:, (*12)

\schmunk42\giiant\crud\providers\EditorProvider,
\schmunk42\giiant\crud\providers\SelectProvider,

And configure the settings of the provider, add setting via dependecy injection this to your application config, eg. in console/config/bootstrap.php:, (*13)

\Yii::$container->set(
    'schmunk42\giiant\crud\providers\EditorProvider',
    [
        'columnNames' => ['description']
    ]
);

This will render a Ckeditor widget for every column named description., (*14)

<?= $form->field($model, 'description')->widget(
\dosamigos\ckeditor\CKEditor::className(),
[
    'options' => ['rows' => 6],
    'preset' => 'basic'
]) ?>

Universal CallbackProvider

Configuration via DI container:, (*15)

\Yii::$container->set(
    'schmunk42\giiant\crud\providers\CallbackProvider',
    [

        'activeFields'  => [

           /**
            * Generate a checkbox for specific column (model attribute)
            */
           'common\models\Foo.isAvailable' => function ($attribute, $generator) {
               $data = \yii\helpers\VarDumper::export([0 => 'Nein', 1 => 'Ja']);
               return <<<INPUT
\$form->field(\$model, '{$attribute}')->checkbox({$data});
INPUT;
           },
        ],


        'columnFormats' => [

           /**
            * generate custom HTML in column
            */
           'common\models\Foo.html' => function ($attribute, $generator) {

               return <<<FORMAT
[
    'format' => 'html',
    'label'=>'FOOFOO',
    'attribute' => 'item_id',
    'value'=> function(\$model){
        return \yii\helpers\Html::a(\$model->bar,['/crud/item/view', 'id' => \$model->link_id]);
    }
]
FORMAT;
           },


           /**
            * hide all text fields in grid
            */
           '.+' => function ($column, $model) {
                    if ($column->dbType == 'text') {
                        return false;
                    }
           },

           /**
            * hide system fields in grid
            */
           'created_at$|updated_at$' => function () {
                   return false;
           },

        ]
    ]
);

Extras

A detailed description how to use MySQL workbench for model updates and migration see here., (*16)

Special thanks to motin, thyseus, uldisn and rcoelho for their work, inspirations and feedback., (*17)

The Versions

11/11 2014

dev-master

9999999-dev https://github.com/pafnow/yii2-giiant

Gii CRUD generator for Yii 2 Framework

  Sources   Download

BSD-3-Clause

The Requires

 

by Avatar pafnow

yii2 crud gii

10/10 2014

dev-feature/show-process

dev-feature/show-process https://github.com/schmunk42/yii2-giiant

Gii CRUD generator for Yii 2 Framework

  Sources   Download

BSD-3-Clause

The Requires

 

yii2 crud gii

24/08 2014

dev-develop

dev-develop https://github.com/schmunk42/yii2-giiant

Gii CRUD generator for Yii 2 Framework

  Sources   Download

BSD-3-Clause

The Requires

 

yii2 crud gii