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 install
Si 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!