yii2-giiant
"Giiant is huge!", (*1)
PROJECT IS IN BETA STAGE!, (*2)
Note: Major changes from 0.4 to 0.5, see upgrading for details., (*3)
, (*4)
What is this?
Giiant is an extended code-generator for models and CRUDs, based upon Gii (Yii 2.0 Framework)., (*5)
It creates prototypes for database models and backends including relations defined by foreign-key constrains in no-time., (*6)
To provide a highly flexible configuration system it features a callback-provider-queue to define rendering of customized inputs, columns or attribute values., (*7)
A main project goal is porting many features and learnings from gtc, giix, awecrud and other code-generators into one solution., (*8)
Resources
Features
Batch command
-
yii batch
creates all models and/or CRUDs for a set of tables sequentially with a single command
Model generator
- generates separate model classes to customize and base models classes which can be regenerated on schema changes
- table prefixes can be stipped off model class names (not bound to
db
connection settings from Yii 2.0)
CRUD generator
- input, attribute, column and relation customization with provider queues
- callback provider to inject any kind of code for inputs, attributes and columns via dependency injection
- virtual-relation support (non-foreign key relations)
- model, view and controller locations can be customized to use subfolders
- horizontal and vertical form layout
- options for tidying generated code
- action button class customization (Select "App Class" option on the Action Button Class option on CRUD generator to customize)
Installation
The preferred way to install this extension is through composer., (*9)
Using a stable version, (*10)
composer require schmunk42/yii2-giiant:"@stable"
Using latest master, (*11)
composer require schmunk42/yii2-giiant:"@dev"
The generators are registered automatically in the application bootstrap process, if Gii module is enabled., (*12)
You can try giiant via phd (dockerized PHP application template)., (*13)
Configuration
It's recommended to configure a customized batch
command in your application CLI configuration., (*14)
'controllerMap' => [
'batch' => [
'class' => 'schmunk42\giiant\commands\BatchController',
'overwrite' => true,
'modelNamespace' => 'app\\modules\\crud\\models',
'crudTidyOutput' => true,
]
],
Note: yii giiant-batch
is an alias for the default configuration of BatchController
registered by this extension., (*15)
You can add the giiant specific configuration config/giiant.php
, and include this from your config/main.php
., (*16)
See the batches section for configuration details., (*17)
Usage
To create a full-featured database backend, run the CLI batch command, (*18)
yii batch
You can still override the settings from the configuration, like selecting specific tables, (*19)
yii batch --tables=a,list,of,tables
Core commands
Show help for gii, (*20)
yii help gii
Create application-module for giiant CRUDs, (*21)
yii gii/giiant-module
The commands for generating models and CRUD, there are usually run via the batch command above., (*22)
yii gii/giiant-model
yii gii/giiant-crud
Advanced
Provider usage and configuration via dependency injection
See docs for details., (*23)
Using callbacks to provide code-snippets
See docs for details., (*24)
Troubleshooting
See docs for known-issues, platform specific usage, quirks, faq, ..., (*25)
Special thanks to motin, thyseus, uldisn and rcoelho for their work, inspirations and feedback., (*26)
Screenshots
, (*27)
Built by dmstr, (*28)