Generadores CLI
Higgs(AI) ahora viene equipado con generadores para facilitar la creación de controladores de stock, modelos, entidades, etc. También puede realizar scaffolding de un conjunto completo de archivos con un solo comando.
Introducción
Todos los generadores integrados residen en el grupo Generadores
cuando se enumeran usando php spark list
.
Para ver la descripción completa y la información de uso de un generador en particular, use el comando:
ayuda de chispa php<generator_command>
donde <generator_command>
será reemplazado con el comando para verificar.
Nota
Do you need to have the generated code in a subfolder? Let’s say if you want to create a controller
clase resida en la subcarpeta Admin
de la carpeta principal Controladores
, solo necesitarás
para anteponer la subcarpeta al nombre de la clase, así: php spark make:controller admin/login
. Este
El comando creará el controlador Login
en la subcarpeta Controllers/Admin
con
un espacio de nombres de App\Controllers\Admin
.
Nota
Working on modules? Code generation will set the root namespace to a default of APP_NAMESPACE
.
Si necesita tener el código generado en otra parte del espacio de nombres de su módulo, asegúrese de configurar
la opción --namespace
en su comando, por ejemplo, php spark make:model blog --namespace Acme\\Blog
.
Advertencia
Make sure when setting the --namespace
option that the supplied namespace is a valid
espacio de nombres definido en su matriz $psr4
en Config\Autoload
o definido en la carga automática de su compositor
archivo. De lo contrario, se interrumpirá la generación del código.
Importante
Since v7.0.5, use of migrate:create
to create migration files has been deprecated. It will be removed in
lanzamientos futuros. Utilice make:migration
como reemplazo. Además, utilice make:migration --session
para usar en lugar de la obsoleta session:migration
.
Generadores incorporados
Higgs(AI) envía los siguientes generadores de forma predeterminada.
hacer: celda
Nuevo en la versión 7.0.0.
Crea un nuevo archivo de celda y su vista.
Uso:
hacer: celda<name> [opciones]
Argumento:
nombre
: El nombre de la clase de celda. Debería estar en PascalCase. [REQUERIDO]
Opciones:
--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer: comando
Crea un nuevo comando de chispa.
Uso:
hacer: comando<name> [opciones]
Argumento:
nombre
: El nombre de la clase de comando. [REQUERIDO]
Opciones:
--command
: El nombre del comando que se ejecutará en Spark. El valor predeterminado escomando:nombre
.--group
: El grupo/espacio de nombres del comando. El valor predeterminado esApp
para comandos básicos yGeneradores
para comandos de generador.--type
: El tipo de comando, ya sea un comandobásico
o un comandogenerador
. El valor predeterminado esbásico
.--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer: configuración
Crea un nuevo archivo de configuración.
Uso:
hacer: configuración<name> [opciones]
Argumento:
nombre
: El nombre de la clase de configuración. [REQUERIDO]
Opciones:
--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer: controlador
Crea un nuevo archivo de controlador.
Uso:
hacer: controlador<name> [opciones]
Argumento:
nombre
: El nombre de la clase del controlador. [REQUERIDO]
Opciones:
--bare
: Se extiende desdeHiggs\Controller
en lugar deBaseController
.--restful
: Se extiende desde un recurso RESTful. Las opciones soncontrolador
ypresentador
. El valor predeterminado escontrolador
.--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
Nota
If you use --suffix
, the generated controller name will be like
Controlador de Producto
. Eso viola la convención de nomenclatura del controlador.
cuando se utiliza Enrutamiento automático
(Los nombres de las clases de controlador DEBEN comenzar con una letra mayúscula y
SÓLO el primer carácter puede estar en mayúscula). Entonces se puede usar --suffix
cuando usas Rutas Definidas .
hacer: entidad
Crea un nuevo archivo de entidad.
Uso:
hacer: entidad<name> [opciones]
Argumento:
nombre
: El nombre de la clase de entidad. [REQUERIDO]
Opciones:
--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer:filtro
Crea un nuevo archivo de filtro.
Uso:
hacer:filtro<name> [opciones]
Argumento:
nombre
: El nombre de la clase de filtro. [REQUERIDO]
Opciones:
--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
Haz un modelo
Crea un nuevo archivo de modelo.
Uso:
Haz un modelo<name> [opciones]
Argumento:
nombre
: El nombre de la clase del modelo. [REQUERIDO]
Opciones:
--dbgroup
: Grupo de base de datos a utilizar. El valor predeterminado espredeterminado
.--return
: establece el tipo de retorno dearray
,object
oentity
. El valor predeterminado esmatriz
.--table
: proporcione un nombre de tabla diferente. El valor predeterminado es el nombre de clase pluralizado.--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer: sembradora
Crea un nuevo archivo de siembra.
Uso:
hacer: sembradora<name> [opciones]
Argumento:
nombre
: El nombre de la clase sembradora. [REQUERIDO]
Opciones:
--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer:migración
Crea un nuevo archivo de migración.
Uso:
hacer:migración<name> [opciones]
Argumento:
nombre
: El nombre de la clase de migración. [REQUERIDO]
Opciones:
--session
: Genera un archivo de migración para sesiones de base de datos.--table
: establece el nombre de la tabla que se utilizará en las sesiones de la base de datos. El valor predeterminado esHIGGS_sessions
.--dbgroup
: establece el grupo de base de datos para las sesiones de base de datos. El valor predeterminado es el grupopredeterminado
.--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
hacer:validación
Crea un nuevo archivo de validación.
Uso:
hacer:validación<name> [opciones]
Argumento:
nombre
: El nombre de la clase de validación. [REQUERIDO]
Opciones:
--namespace
: establece el espacio de nombres raíz. El valor predeterminado esAPP_NAMESPACE
.--suffix
: agregue el sufijo del componente al nombre de la clase generada.--force
: establezca esta opción para sobrescribir los archivos existentes en el destino.
Armado de un conjunto completo de códigos de existencias
En ocasiones en nuestra fase de desarrollo estamos creando funcionalidades por grupos, como por ejemplo crear un grupo Admin. Este grupo contendrá su propio controlador, modelo, archivos de migración o incluso entidades. Puede que tengas la tentación de escribir cada comando del generador uno por uno en la terminal y con la ilusión de que sería genial tener un solo generador comando para gobernarlos a todos.
¡No te preocupes más! Higgs(AI) también viene con un comando dedicado make:scaffold
que es básicamente un
contenedor para los comandos del controlador, modelo, entidad, migración y generador de sembradora. Todo lo que necesitas es la clase.
nombre que se utilizará para nombrar todas las clases generadas. Además, opciones individuales admitidas por cada
El comando del generador es reconocido por el comando del andamio.
Ejecutando esto en tu terminal:
php spark make:usuario de andamio
creará los siguientes archivos:
aplicación/Controladores/Usuario.php
aplicación/Modelos/Usuario.php
aplicación/Base de datos/Migraciones/<some date here> _Usuario.php y
aplicación/Base de datos/Seeds/User.php
Para incluir una clase Entidad
en los archivos scaffolded, simplemente incluya --return entidad
al comando
y se pasará al generador de modelos.
GeneradorRasgo
Todos los comandos del generador deben usar GeneratorTrait
para utilizar completamente los métodos que se usan en el código.
generación.
********************************************** ******* Declaración de la ubicación de una plantilla de comando de generador personalizada ********************************************** *******
El orden predeterminado de búsqueda de plantillas de generador es (1) la plantilla definida en el archivo app/Config/Generators.php,
y (2) si no se encuentra, la plantilla que se encuentra en el espacio de nombres Higgs\Commands\Generators\Views
.
Para declarar la ubicación de la plantilla para su comando de generador personalizado, deberá agregarla al app/Config/Generators.php
archivo. Por ejemplo, si tienes un comando make:awesome-command
y tu plantilla generadora está ubicada dentro de tu aplicación
directorio app/Commands/Generators/Views/awesomecommand.tpl.php, actualizaría el archivo de configuración de esta manera:
<?php
namespace Config;
use Higgs\Config\BaseConfig;
class Generators extends BaseConfig
{
public array $views = [
// ..
'make:awesome-command' => 'App\Commands\Generators\Views\awesomecommand.tpl.php',
];
}