Muchos desarrolladores de WordPress anhelan funciones como Eloquent, Blade, Service Container y Service Provider que les ayuden a crear complementos potentes. Falcon está aquí para cambiar el juego y poner estas capacidades a tu alcance.
Tenga en cuenta: este complemento proporciona una serie de servicios y no está diseñado para usarse como base para crear nuevos complementos.
Versión mínima de PHP: 8.2
Crear directorio: en la carpeta wp-content , si la carpeta mu-plugins no existe, créela. Coloque la carpeta falcon-base-services dentro de ella.
Crear archivo Loader: en la raíz de la carpeta mu-plugins , cree un archivo PHP con el nombre que elija y agregue el siguiente código:
<?php
require ' falcon-base-services/falcon-base-services.php ' ; Tenga en cuenta que no es necesario activar el contenido de la carpeta mu-plugins en el administrador de WordPress y se ejecuta antes que todos los demás complementos. Además, WordPress no escanea las carpetas dentro de mu-plugins a menos que se indique explícitamente.
Instalar dependencias: abra la terminal en la carpeta falcon-base-services y ejecute el siguiente comando:
composer installSi no ha instalado Composer, puede descargarlo e instalarlo desde este enlace.
El complemento ya está listo para usarse. Exploremos sus características y cómo usarlas.
Si necesita poner el sitio en modo de mantenimiento, simplemente cambie el nombre del archivo maintenance.example.php en la carpeta storage a maintenance.php . También puede editar el contenido del archivo según sea necesario.
Los elementos mencionados en el archivo .env.example son importantes. Cambie el nombre del archivo a .env .
Puede configurar sus variables en el archivo .env y usarlas en cualquier parte de su código de esta manera:
$ _ENV [ ' item ' ];
//or
env ( ' item ' )Para configurar un elemento en la var $_ENV global, puede usar:
setEnv ( $ key , $ value ); También puede utilizar archivos de configuración en su proyecto que devuelvan una matriz. Coloque el archivo de configuración en la carpeta de configuración y acceda a los valores deseados usando la función falconConfig($file, $key = null, $folder_path = null) .
$file : El nombre del archivo de configuración.
$key : La clave de la matriz solicitada. Si es nulo, se devuelve todo el contenido del archivo.
$folder_path : de forma predeterminada, la ruta a los archivos de configuración se encuentra en la carpeta de configuración. Si desea tener nuevas configuraciones en su proyecto, también puede especificar la ruta a la nueva carpeta.
El complemento utiliza un potente contenedor de servicios con capacidades de cableado automático.
Servicios Singleton: Registre un servicio Singleton usando:
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);Servicios no singleton: Registre un servicio no singleton usando:
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);Usando cierres: También puedes usar cierres:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; }); Uso de los servicios: utilice el método get para recuperar los servicios:
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);Resolución de métodos: resuelva un método de una clase usando:
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );Esto resolverá automáticamente cualquier dependencia requerida tanto por la clase como por el método.
Para crear un proveedor de servicios, cree una clase en la carpeta app/providers y extienda la clase ServiceProvider . Utilice los métodos register y boot según sea necesario. Luego, agregue la dirección del proveedor en el archivo providers.php ubicado en la carpeta bootstrap .
Todas las tablas predeterminadas de WordPress están disponibles como modelos en la carpeta app/Model . Próximamente se agregarán tablas WooCommerce . Puede utilizar tanto el potente Query Builder como Eloquent para interactuar con estas tablas.
( new FalconBaseServices Model Post ())-> published ()-> with ( ' author ' )-> get (); falconDB ():: table ( ' wp_posts ' )
-> where ( ' post_status ' , ' publish ' )
-> leftJoin ( ' wp_users ' , ' wp_posts.post_author ' , ' = ' , ' wp_users.ID ' )
-> select ( ' wp_posts.* ' , ' wp_users.user_nicename ' )
-> get (); Si desea utilizar una nueva tabla como modelo, cree su clase extendiendo la clase FalconBaseServicesModelBaseModel . Si la tabla no usa el prefijo predeterminado, establezca $with_prefix en falso:
protected $ with_prefix = false ;Las reglas y el uso de modelos y Query Builder/Eloquent son exactamente como la documentación de Laravel.
De forma predeterminada, Blade se utiliza como motor de plantilla, cuyo uso es ligeramente diferente al estándar. Presta atención al ejemplo:
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render (); También puedes usar ramita. La clase derivada de la interfaz app/Services/TemplateEngine/Template.php está disponible en la ruta app/Services/TemplateEngine/Implements/Twig.php . Simplemente agregue Twig al complemento a través de Composer y luego edite el archivo app/Providers/TemplateServiceProvider.php . El uso es similar al ejemplo anterior.
Para usar el registrador, use falconLogger():
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]); Si desea que ProcessIdProcessor , GitProcessor y MemoryUsageProcessor se incluyan en el registro, establezca los elementos relacionados en el archivo .env en verdadero.
Para usar el correo electrónico, puedes usar falconEmail():
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null ); Para obtener más información sobre cómo utilizar el correo electrónico, consulte el archivo app/Services/Sender/Implements/Email/PHPMailer.php .
¡Feliz codificación!