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 ciacmeConfigurez 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:doctrineNote
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:layoutCré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 --bootstrapcreate:controllerCré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 --wildfirecreate:modelCré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 --wildfirecreate:repositoryCré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 usersNote
Cette commande n'est applicable qu'à une implémentation de Doctrine.
create:viewCré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 --bootstrapcreate:scaffoldCré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 --wildfireNote
Si --doctrine est sélectionné, la commande exécutera également la commande create:repository .
install:doctrineInstallez le package Doctrine.
Exemple
$ vendor/bin/ combustor install:doctrineNote
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:wildfireInstallez le package Wildfire.
Exemple
$ vendor/bin/ combustor install:wildfireNote
Cette commande sera disponible si Wildfire n'est pas installé dans le projet.
remove:doctrineSupprimez le package Doctrine.
Exemple
$ vendor/bin/ combustor remove:doctrineNote
Cette commande sera disponible si Doctrine est installée dans le projet.
remove:wildfireSupprimez le package Wildfire.
Exemple
$ vendor/bin/ combustor remove:wildfireNote
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_fieldsLes champs spécifiés dans cette propriété sont exclus de la génération vers les modèles suivants :
controllersmodelsviews (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.