combustor es un paquete de utilidades para Codeigniter 3 que genera controladores, modelos y vistas basados en las tablas de bases de datos proporcionadas. Utiliza el paquete Describe para obtener columnas de una tabla de base de datos y como base para la generación de código.
Codeigniter 3 ;combustor hará el resto. Primero extraiga el contenido del último proyecto de Codeigniter 3:
$ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.13.zip
$ unzip 3.1.13.zip -d ciacmeLuego configure los ajustes de conectividad de la base de datos del proyecto:
$ cd ciacme
$ nano application/config/database.php
// ciacme/application/config/database.php
// ...
$ db [ ' default ' ] = array (
' dsn ' => '' ,
' hostname ' => ' localhost ' ,
' username ' => '' ,
' password ' => '' ,
' database ' => '' ,
' dbdriver ' => ' mysqli ' ,
// ...
); Lo siguiente es proceder a instalar combustor a través de Composer:
$ composer require rougin/ combustor --dev // ciacme/composer.json
{
// ...
"require-dev" :
{
"mikey179/vfsstream" : " 1.6.* " ,
"phpunit/phpunit" : " 4.* || 5.* || 9.* " ,
"rougin/ combustor " : " ~1.0 "
}
} Por último, instale los contenedores ORM como Wildfire o Doctrine :
$ vendor/bin/ combustor install:wildfire
$ vendor/bin/ combustor install:doctrineNota
El uso del comando install:wildfire instala el paquete Wildfire mientras que install:doctrine instala el paquete Credo.
Antes de ejecutar cualquier comando, asegúrese de que las tablas de la base de datos estén definidas correctamente (claves externas, índices, relaciones, normalizaciones) para minimizar las modificaciones después de que se haya generado la estructura del código.
Además, proceda primero a generar modelos, vistas o controladores para tablas de bases de datos que no tengan relación con otras tablas de la base de datos.
Consejo
combustor generará controladores, modelos o vistas basadas en el esquema de base de datos especificado. Si hay algún problema en el esquema de la base de datos especificada, combustor generará una base de código incorrecta.
create:layoutCree un nuevo archivo de encabezado y pie de página.
Opciones
--bootstrap : agrega estilo basado en Bootstrap--force - genera archivos incluso si ya existenEjemplo
$ vendor/bin/ combustor create-layout --bootstrapcreate:controllerCree un nuevo controlador HTTP.
Argumentos
table : nombre de la tabla de la base de datosOpciones
--doctrine - genera un controlador basado en Doctrine--wildfire : genera un controlador basado en Wildfire--empty : genera un controlador HTTP vacío--force - genera archivos incluso si ya existen Nota
Si está instalado Wildfire o Doctrine , no es necesario especificarlo como opción para ejecutar un comando específico (por ejemplo, --wildfire ). Sin embargo, si ambos están instalados, un comando debe tener agregada la opción --wildfire o --doctrine .
Ejemplo
$ vendor/bin/ combustor create:controller users --wildfirecreate:modelCrea un nuevo modelo.
Argumentos
table : nombre de la tabla de la base de datosOpciones
--doctrine - genera un modelo basado en Doctrine--wildfire : genera un modelo basado en Wildfire--empty - genera un modelo vacío--force - genera archivos incluso si ya existenEjemplo
$ vendor/bin/ combustor create:model users --wildfirecreate:repositoryCree un nuevo repositorio de entidades.
Argumentos
table : nombre de la tabla de la base de datosOpciones
--force - genera archivos incluso si ya existenEjemplo
$ vendor/bin/ combustor create:repository usersNota
Este comando sólo es aplicable a una implementación de Doctrine.
create:viewCrear plantillas de vista.
Argumentos
table : nombre de la tabla de la base de datosOpciones
--bootstrap : agrega estilo basado en Bootstrap--doctrine - genera vistas basadas en Doctrine--wildfire : genera vistas basadas en Wildfire--force - genera archivos incluso si ya existenEjemplo
$ vendor/bin/ combustor create:view users --bootstrapcreate:scaffoldCree un nuevo controlador HTTP, modelo y plantillas de vista.
Argumentos
table : nombre de la tabla de la base de datosOpciones
--bootstrap : agrega estilo basado en Bootstrap--doctrine : genera un controlador, un modelo y vistas basados en Doctrine--wildfire : genera un controlador, un modelo y vistas basados en Wildfire--force - genera archivos incluso si ya existenEjemplo
$ vendor/bin/ combustor create:scaffold users --bootstrap --wildfireNota
Si se selecciona --doctrine , el comando también ejecutará el comando create:repository .
install:doctrineInstale el paquete Doctrina.
Ejemplo
$ vendor/bin/ combustor install:doctrineNota
Doctrine no está instalado en el proyecto.Loader.php en el directorio core . Dicho archivo se utiliza para cargar repositorios personalizados extendidos a EntityRepository .install:wildfireInstale el paquete Wildfire.
Ejemplo
$ vendor/bin/ combustor install:wildfireNota
Este comando estará disponible si Wildfire no está instalado en el proyecto.
remove:doctrineRetire el paquete Doctrine.
Ejemplo
$ vendor/bin/ combustor remove:doctrineNota
Este comando estará disponible si Doctrine está instalado en el proyecto.
remove:wildfireRetire el paquete Wildfire.
Ejemplo
$ vendor/bin/ combustor remove:wildfireNota
Este comando estará disponible si Wildfire está instalado en el proyecto.
combustor .yml combustor actualmente funciona de inmediato después de la configuración basada en Installation . Sin embargo, el uso de una combustor .yml se puede utilizar para configuraciones complejas, como especificar la nueva ruta de la aplicación y excluir columnas:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
excluded_fields :
- created_at
- updated_at
- deleted_at Para crear una combustor .yml , simplemente ejecute el comando initialize :
$ vendor/bin/ combustor initialize
[PASS] " combustor .yml " added successfully !app_path Esta propiedad especifica el directorio application . Puede actualizarse a cualquier directorio (por ejemplo, ciacme/application , ciacme/config , etc.) siempre que pueda detectar el archivo config/config.php del directorio definido:
# combustor .yml
app_path : %%CURRENT_DIRECTORY%%/Sample
# ... Nota
combustor intentará verificar la ruta especificada en app_path si es un proyecto Codeigniter 3 válido. Luego realizará otra verificación si el directorio application existe o si se puede acceder al directorio config directamente desde el directorio definido en app_path .
excluded_fieldsLos campos especificados en esta propiedad están excluidos de la generación en las siguientes plantillas:
controllersmodelsviews (solo para create y edit plantillas) # combustor .yml
# ...
excluded_fields :
- created_at
- updated_at
- deleted_at Nota
Las marcas de tiempo se agregan de forma predeterminada al crear un combustor .yml por primera vez, ya que generalmente se completan automáticamente con ORM instalados como Wildfire o Doctrine .
custom_fields De forma predeterminada, todos los campos generados por combustor para create y edit páginas utilizarán el asistente 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> Sin embargo, es posible que algunos campos, como email y los tipos boolean , necesiten utilizar otros asistentes de formulario:
<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> Para lograr esto, combustor proporciona una utilidad para manejar nombres de campos o tipos de datos específicos usando custom_fields :
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField Al agregar un campo personalizado, cree una clase que se extienda a la clase 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 );
}
} Luego, después de crear el campo personalizado, simplemente agregue el nombre de la clase al combustor .yml :
# combustor .yml
# ...
custom_fields :
- Rougin combustor TemplateFieldsBooleanField
- AcmeFieldsEmailField Consulte CHANGELOG para obtener más información sobre los cambios recientes.
$ composer test La Licencia MIT (MIT). Consulte LICENCIA para obtener más información.