combustor est un package utilitaire pour Codeigniter 3 qui génère des contrôleurs, des modèles et des vues basés sur les tables de base de données fournies. Il utilise le package Describe pour obtenir des colonnes d'une table de base de données et comme base pour la génération de code.
Codeigniter 3
;combustor
fera le reste. Extrayez d'abord le contenu du dernier projet Codeigniter 3 :
$ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.13.zip
$ unzip 3.1.13.zip -d ciacme
Configurez ensuite les paramètres de connectivité de la base de données du projet :
$ cd ciacme
$ nano application/config/database.php
// ciacme/application/config/database.php
// ...
$ db [ ' default ' ] = array (
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => '' ,
' password ' => '' ,
' database ' => '' ,
' dbdriver ' => ' mysqli ' ,
// ...
);
Ensuite, procédez à l'installation combustor
via Composer :
$ composer require rougin/ combustor --dev
// ciacme/composer.json
{
// ...
"require-dev" :
{
"mikey179/vfsstream" : " 1.6.* " ,
"phpunit/phpunit" : " 4.* || 5.* || 9.* " ,
"rougin/ combustor " : " ~1.0 "
}
}
Enfin, installez les wrappers ORM comme Wildfire
ou Doctrine
:
$ vendor/bin/ combustor install:wildfire
$ vendor/bin/ combustor install:doctrine
Note
L’utilisation de la commande install:wildfire
installe le package Wildfire tandis que la install:doctrine
installe le package Credo.
Avant d'exécuter une commande, assurez-vous que les tables de la base de données sont correctement définies (clés étrangères, index, relations, normalisations) afin de minimiser les modifications après la génération de la structure du code.
Veuillez également commencer par générer des modèles, des vues ou des contrôleurs vers des tables de base de données qui n'ont aucune relation avec d'autres tables de la base de données.
Conseil
combustor
générera des contrôleurs, des modèles ou des vues basés sur le schéma de base de données spécifié. S'il y a quelque chose qui ne va pas dans le schéma de base de données spécifié, combustor
générera une mauvaise base de code.
create:layout
Créez un nouveau fichier d'en-tête et de pied de page.
Possibilités
--bootstrap
- ajoute un style basé sur Bootstrap--force
- génère des fichiers même s'ils existent déjàExemple
$ vendor/bin/ combustor create-layout --bootstrap
create:controller
Créez un nouveau contrôleur HTTP.
Arguments
table
- nom de la table de la base de donnéesPossibilités
--doctrine
- génère un contrôleur basé sur la doctrine--wildfire
- génère un contrôleur basé sur Wildfire--empty
- génère un contrôleur HTTP vide--force
- génère des fichiers même s'ils existent déjà Note
Si Wildfire
ou Doctrine
est installé, il n'est pas nécessaire de le spécifier comme option pour exécuter une commande spécifiée (par exemple --wildfire
). Cependant, si les deux sont installés, une commande doit avoir une option --wildfire
ou --doctrine
ajoutée.
Exemple
$ vendor/bin/ combustor create:controller users --wildfire
create:model
Créez un nouveau modèle.
Arguments
table
- nom de la table de la base de donnéesPossibilités
--doctrine
- génère un modèle basé sur la doctrine--wildfire
- génère un modèle basé sur Wildfire--empty
- génère un modèle vide--force
- génère des fichiers même s'ils existent déjàExemple
$ vendor/bin/ combustor create:model users --wildfire
create:repository
Créez un nouveau référentiel d'entités.
Arguments
table
- nom de la table de la base de donnéesPossibilités
--force
- génère des fichiers même s'ils existent déjàExemple
$ vendor/bin/ combustor create:repository users
Note
Cette commande n'est applicable qu'à une implémentation de Doctrine.
create:view
Créez des modèles de vue.
Arguments
table
- nom de la table de la base de donnéesPossibilités
--bootstrap
- ajoute un style basé sur Bootstrap--doctrine
- génère des vues basées sur la doctrine--wildfire
- génère des vues basées sur Wildfire--force
- génère des fichiers même s'ils existent déjàExemple
$ vendor/bin/ combustor create:view users --bootstrap
create:scaffold
Créez un nouveau contrôleur HTTP, un modèle et des modèles de vue.
Arguments
table
- nom de la table de la base de donnéesPossibilités
--bootstrap
- ajoute un style basé sur Bootstrap--doctrine
- génère un contrôleur, un modèle et des vues basés sur la doctrine--wildfire
- génère un contrôleur, un modèle et des vues basés sur Wildfire--force
- génère des fichiers même s'ils existent déjàExemple
$ vendor/bin/ combustor create:scaffold users --bootstrap --wildfire
Note
Si --doctrine
est sélectionné, la commande exécutera également la commande create:repository
.
install:doctrine
Installez le package Doctrine.
Exemple
$ vendor/bin/ combustor install:doctrine
Note
Doctrine
n'est pas installé dans le projet.Loader.php
dans le répertoire core
. Ledit fichier est utilisé pour charger des référentiels personnalisés étendus à EntityRepository
.install:wildfire
Installez le package Wildfire.
Exemple
$ vendor/bin/ combustor install:wildfire
Note
Cette commande sera disponible si Wildfire
n'est pas installé dans le projet.
remove:doctrine
Supprimez le package Doctrine.
Exemple
$ vendor/bin/ combustor remove:doctrine
Note
Cette commande sera disponible si Doctrine
est installée dans le projet.
remove:wildfire
Supprimez le package Wildfire.
Exemple
$ vendor/bin/ combustor remove:wildfire
Note
Cette commande sera disponible si Wildfire
est installé dans le projet.
combustor .yml
combustor
fonctionne actuellement immédiatement après la configuration basée sur Installation
. Cependant, l'utilisation d'un combustor .yml
peut être utilisée pour des configurations complexes telles que la spécification du nouveau chemin d'application et l'exclusion de colonnes :
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
excluded_fields :
- created_at
- updated_at
- deleted_at
Pour créer un combustor .yml
, exécutez simplement la commande initialize
:
$ vendor/bin/ combustor initialize
[PASS] " combustor .yml " added successfully !
app_path
Cette propriété spécifie le répertoire application
. Il peut être mis à jour vers n'importe quel répertoire (par exemple, ciacme/application
, ciacme/config
, etc.) tant qu'il peut détecter le fichier config/config.php
à partir du répertoire défini :
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
# ...
Note
combustor
essaiera de vérifier le chemin spécifié dans app_path
s'il s'agit d'un projet Codeigniter 3
valide. Ensuite, il effectuera une autre vérification si le répertoire application
existe ou si le répertoire config
est accessible directement à partir du répertoire défini dans app_path
.
excluded_fields
Les champs spécifiés dans cette propriété sont exclus de la génération vers les modèles suivants :
controllers
models
views
(uniquement pour create
et edit
des modèles) # combustor .yml
# ...
excluded_fields :
- created_at
- updated_at
- deleted_at
Note
Les horodatages sont ajoutés par défaut lors de la première création d'un combustor .yml
, car ils sont généralement renseignés automatiquement par les ORM installés tels que Wildfire
ou Doctrine
.
custom_fields
Par défaut, tous les champs générés par combustor
pour create
et edit
des pages utiliseront l'assistant form_input
:
<div class="mb- 3 ">
<?= form_label ( ' Email ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
<?= form_input ( ' email ' , set_value ( ' email ' ), ' class="form-control" ' ) ?>
<?= form_error ( ' email ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div>
Cependant, certains champs comme les types email
et boolean
peuvent nécessiter l'utilisation d'autres assistants de formulaire :
<div class="mb- 3 ">
<?= form_label ( ' Email ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
// Still using form_input, but the type is "email" instead
<?= form_input ([ ' type ' => ' email ' , ' name ' => ' email ' , ' value ' => set_value ( ' email ' ), ' class ' => ' form-control ' ]) ?>
<?= form_error ( ' email ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div>
<div class="mb- 3 ">
<?= form_label ( ' Admin ' , '' , [ ' class ' => ' form-label mb-0 ' ]) ?>
// Use "form_checkbox" for boolean-based data types
<div>
<?= form_checkbox ( ' admin ' , true , set_value ( ' admin ' ), ' class="form-check-input" ' ) ?>
</div>
<?= form_error ( ' admin ' , ' <div><span class="text-danger small"> ' , ' </span></div> ' ) ?>
</div>
Pour y parvenir, combustor
fournit un utilitaire permettant de gérer les noms de champs ou les types de données spécifiés à l'aide de custom_fields
:
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
Lors de l'ajout d'un champ personnalisé, veuillez créer une classe qui s'étend à la classe Colfield
:
namespace Acme Fields ;
use Rougin combustor Colfield ;
class EmailField extends Colfield
{
protected $ class = ' form-control ' ;
/**
* If $name is specified, it will check if the current field
* name matches the in this $name field.
*/
protected $ name = ' email ' ;
public function getPlate ()
{
$ field = $ this -> accessor ;
$ class = $ this -> getClass ();
/** @var string */
$ name = $ this -> getName ();
$ html = ' <?= form_input([ ' type ' => ' email ' , ' name ' => '' . $ name . '' , ' value ' => set_value( '' . $ name . '' )]) ?> ' ;
if ( $ this -> edit )
{
$ html = str_replace ( ' set_value( '' . $ name . '' ) ' , ' set_value( '' . $ name . '' , ' . $ field . ' ) ' , $ html );
}
$ html = str_replace ( ' )]) ?> ' , ' ), ' class ' => '' . $ class . '' ]) ?> ' , $ html );
return array ( $ html );
}
}
Ensuite, après avoir créé le champ personnalisé, ajoutez simplement le nom de la classe au combustor .yml
:
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
- AcmeFieldsEmailField
Veuillez consulter CHANGELOG pour plus d'informations sur ce qui a changé récemment.
$ composer test
La licence MIT (MIT). Veuillez consulter LICENCE pour plus d'informations.