combustor ist ein Dienstprogrammpaket für Codeigniter 3, das Controller, Modelle und Ansichten basierend auf den bereitgestellten Datenbanktabellen generiert. Es verwendet das Describe-Paket zum Abrufen von Spalten aus einer Datenbanktabelle und als Grundlage für die Codegenerierung.
Codeigniter 3 Frameworks;combustor erledigt den Rest. Extrahieren Sie zunächst den Inhalt des neuesten Codeigniter 3-Projekts:
$ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.13.zip
$ unzip 3.1.13.zip -d ciacmeKonfigurieren Sie dann die Datenbankkonnektivitätseinstellungen des Projekts:
$ cd ciacme
$ nano application/config/database.php
// ciacme/application/config/database.php
// ...
$ db [ ' default ' ] = array (
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => '' ,
' password ' => '' ,
' database ' => '' ,
' dbdriver ' => ' mysqli ' ,
// ...
); Als nächstes müssen Sie mit der Installation combustor über Composer fortfahren:
$ composer require rougin/ combustor --dev // ciacme/composer.json
{
// ...
"require-dev" :
{
"mikey179/vfsstream" : " 1.6.* " ,
"phpunit/phpunit" : " 4.* || 5.* || 9.* " ,
"rougin/ combustor " : " ~1.0 "
}
} Installieren Sie abschließend die ORM-Wrapper wie Wildfire oder Doctrine :
$ vendor/bin/ combustor install:wildfire
$ vendor/bin/ combustor install:doctrineNotiz
Mit dem Befehl install:wildfire wird das Wildfire-Paket installiert, während install:doctrine das Credo-Paket installiert.
Bevor Sie Befehle ausführen, stellen Sie bitte sicher, dass die Datenbanktabellen ordnungsgemäß definiert sind (Fremdschlüssel, Indizes, Beziehungen, Normalisierungen), um die Änderungen nach der Generierung der Codestruktur zu minimieren.
Fahren Sie außerdem bitte zunächst mit der Generierung von Modellen, Ansichten oder Controllern für Datenbanktabellen fort, die keine Beziehung zu anderen Tabellen in der Datenbank haben.
Tipp
combustor generiert Controller, Modelle oder Ansichten basierend auf dem angegebenen Datenbankschema. Wenn im angegebenen Datenbankschema etwas nicht stimmt, generiert combustor eine fehlerhafte Codebasis.
create:layoutErstellen Sie eine neue Kopf- und Fußzeilendatei.
Optionen
--bootstrap – fügt ein auf Bootstrap basierendes Styling hinzu--force – generiert Dateien, auch wenn diese bereits vorhanden sindBeispiel
$ vendor/bin/ combustor create-layout --bootstrapcreate:controllerErstellen Sie einen neuen HTTP-Controller.
Argumente
table – Name der DatenbanktabelleOptionen
--doctrine – generiert einen Doctrine-basierten Controller--wildfire – generiert einen Wildfire-basierten Controller--empty – generiert einen leeren HTTP-Controller--force – generiert Dateien, auch wenn diese bereits vorhanden sind Notiz
Wenn entweder Wildfire oder Doctrine installiert ist, muss es nicht als Option zum Ausführen eines bestimmten Befehls angegeben werden (z. B. --wildfire ). Wenn jedoch beide installiert sind, muss einem Befehl die Option --wildfire oder --doctrine hinzugefügt werden.
Beispiel
$ vendor/bin/ combustor create:controller users --wildfirecreate:modelErstellen Sie ein neues Modell.
Argumente
table – Name der DatenbanktabelleOptionen
--doctrine – generiert ein Doctrine-basiertes Modell--wildfire – generiert ein Wildfire-basiertes Modell--empty – generiert ein leeres Modell--force – generiert Dateien, auch wenn diese bereits vorhanden sindBeispiel
$ vendor/bin/ combustor create:model users --wildfirecreate:repositoryErstellen Sie ein neues Entitäts-Repository.
Argumente
table – Name der DatenbanktabelleOptionen
--force – generiert Dateien, auch wenn diese bereits vorhanden sindBeispiel
$ vendor/bin/ combustor create:repository usersNotiz
Dieser Befehl gilt nur für eine Doctrine-Implementierung.
create:viewErstellen Sie Ansichtsvorlagen.
Argumente
table – Name der DatenbanktabelleOptionen
--bootstrap – fügt ein auf Bootstrap basierendes Styling hinzu--doctrine – generiert doktrinbasierte Ansichten--wildfire – generiert Wildfire-basierte Ansichten--force – generiert Dateien, auch wenn diese bereits vorhanden sindBeispiel
$ vendor/bin/ combustor create:view users --bootstrapcreate:scaffoldErstellen Sie einen neuen HTTP-Controller, ein neues Modell und Ansichtsvorlagen.
Argumente
table – Name der DatenbanktabelleOptionen
--bootstrap – fügt ein auf Bootstrap basierendes Styling hinzu--doctrine – generiert einen Doctrine-basierten Controller, ein Modell und Ansichten--wildfire – generiert einen Wildfire-basierten Controller, ein Modell und Ansichten--force – generiert Dateien, auch wenn diese bereits vorhanden sindBeispiel
$ vendor/bin/ combustor create:scaffold users --bootstrap --wildfireNotiz
Wenn --doctrine ausgewählt ist, führt der Befehl auch den Befehl create:repository aus.
install:doctrineInstallieren Sie das Doctrine-Paket.
Beispiel
$ vendor/bin/ combustor install:doctrineNotiz
Doctrine nicht im Projekt installiert ist.Loader.php im core hinzugefügt. Die besagte Datei wird zum Laden benutzerdefinierter Repositorys verwendet, die auf EntityRepository erweitert wurden.install:wildfireInstallieren Sie das Wildfire-Paket.
Beispiel
$ vendor/bin/ combustor install:wildfireNotiz
Dieser Befehl ist verfügbar, wenn Wildfire nicht im Projekt installiert ist.
remove:doctrineEntfernen Sie das Doctrine-Paket.
Beispiel
$ vendor/bin/ combustor remove:doctrineNotiz
Dieser Befehl ist verfügbar, wenn Doctrine im Projekt installiert ist.
remove:wildfireEntfernen Sie das Wildfire-Paket.
Beispiel
$ vendor/bin/ combustor remove:wildfireNotiz
Dieser Befehl ist verfügbar, wenn Wildfire im Projekt installiert ist.
combustor .yml combustor funktioniert derzeit sofort nach der Konfiguration basierend auf Installation . Die Verwendung einer combustor .yml kann jedoch für komplexe Setups wie die Angabe des neuen Anwendungspfads und den Ausschluss von Spalten verwendet werden:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
excluded_fields :
- created_at
- updated_at
- deleted_at Um eine combustor .yml zu erstellen, führen Sie einfach den Befehl initialize aus:
$ vendor/bin/ combustor initialize
[PASS] " combustor .yml " added successfully !app_path Diese Eigenschaft gibt das application an. Es kann in jedes Verzeichnis aktualisiert werden (z. B. ciacme/application , ciacme/config usw.), solange es die Datei config/config.php im definierten Verzeichnis erkennen kann:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
# ... Notiz
combustor wird versuchen, den in app_path angegebenen Pfad zu überprüfen, wenn es sich um ein gültiges Codeigniter 3 -Projekt handelt. Anschließend wird erneut geprüft, ob das application vorhanden ist oder ob direkt über das in app_path definierte Verzeichnis auf das config zugegriffen werden kann.
excluded_fieldsAngegebene Felder in dieser Eigenschaft sind von der Generierung in den folgenden Vorlagen ausgeschlossen:
controllersmodelsviews (nur zum create und edit von Vorlagen) # combustor .yml
# ...
excluded_fields :
- created_at
- updated_at
- deleted_at Notiz
Die Zeitstempel werden standardmäßig hinzugefügt, wenn zum ersten Mal eine combustor .yml erstellt wird, da sie normalerweise automatisch von installierten ORMs wie Wildfire oder Doctrine ausgefüllt werden.
custom_fields Standardmäßig verwenden alle von combustor zum create und edit von Seiten generierten Felder den form_input Helfer:
<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> Allerdings müssen für einige Felder wie email und boolean Felder möglicherweise andere Formularhilfsprogramme verwendet werden:
<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> Um dies zu erreichen, stellt combustor ein Dienstprogramm zur Verarbeitung bestimmter Feldnamen oder Datentypen mithilfe von custom_fields bereit:
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField Wenn Sie ein benutzerdefiniertes Feld hinzufügen, erstellen Sie bitte eine Klasse, die sich auf die Colfield -Klasse erstreckt:
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 );
}
} Nachdem Sie das benutzerdefinierte Feld erstellt haben, fügen Sie einfach den Klassennamen zur combustor .yml hinzu:
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
- AcmeFieldsEmailField Weitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
$ composer test Die MIT-Lizenz (MIT). Weitere Informationen finden Sie unter LIZENZ.