De nombreux développeurs WordPress recherchent des fonctionnalités telles que Eloquent, Blade, Service Container et Service Provider pour les aider à créer des plugins puissants. Falcon est là pour changer la donne et mettre ces capacités à portée de main.
Attention : ce plugin fournit une série de services et n'est pas destiné à être utilisé comme base pour créer de nouveaux plugins.
Version PHP minimale : 8.2
Créer un répertoire : dans le dossier wp-content
, si le dossier mu-plugins
n'existe pas, créez-le. Placez le dossier falcon-base-services
à l'intérieur.
Créer un fichier Loader : A la racine du dossier mu-plugins
, créez un fichier PHP avec un nom de votre choix et ajoutez le code suivant :
<?php
require ' falcon-base-services/falcon-base-services.php ' ;
Notez que le contenu du dossier mu-plugins
n'a pas besoin d'être activé dans l'administrateur WordPress et est exécuté avant tous les autres plugins. De plus, WordPress n’analyse pas les dossiers à l’intérieur mu-plugins
sauf indication explicite.
Installer les dépendances : ouvrez le terminal dans le dossier falcon-base-services
et exécutez la commande suivante :
composer install
Si vous n'avez pas installé Composer, vous pouvez le télécharger et l'installer à partir de ce lien.
Le plugin est maintenant prêt à être utilisé. Explorons ses fonctionnalités et comment les utiliser.
Si vous devez mettre le site en mode maintenance, renommez simplement le fichier maintenance.example.php
dans le dossier storage
en maintenance.php
. Vous pouvez également modifier le contenu du fichier selon vos besoins.
Les éléments mentionnés dans le fichier .env.example
sont importants. Renommez le fichier en .env
.
Vous pouvez définir vos variables dans le fichier .env
et les utiliser n'importe où dans votre code comme ceci :
$ _ENV [ ' item ' ];
//or
env ( ' item ' )
Pour définir un élément dans la variable globale $_ENV, vous pouvez utiliser :
setEnv ( $ key , $ value );
Vous pouvez également utiliser des fichiers de configuration dans votre projet qui renvoient un tableau. Placez le fichier de configuration dans le dossier config et accédez aux valeurs souhaitées à l'aide de la fonction falconConfig($file, $key = null, $folder_path = null)
.
$file
: Le nom du fichier de configuration.
$key
: La clé du tableau demandé. Si nul, l'intégralité du contenu du fichier est renvoyée.
$folder_path
: Par défaut, le chemin d'accès aux fichiers de configuration se trouve dans le dossier config. Si vous souhaitez avoir de nouvelles configurations dans votre projet, vous pouvez également spécifier le chemin d'accès au nouveau dossier.
Le plugin utilise un puissant conteneur de services doté de capacités de câblage automatique.
Services Singleton : enregistrez un service singleton en utilisant :
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);
Services non-singleton : enregistrez un service non-singleton en utilisant :
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);
Utilisation des fermetures : Vous pouvez également utiliser des fermetures :
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; });
Utilisation des services : utilisez la méthode get
pour récupérer les services :
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);
Méthodes de résolution : résolvez une méthode d’une classe en utilisant :
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );
Cela résoudra automatiquement toutes les dépendances requises par la classe et la méthode.
Pour créer un fournisseur de services, créez une classe dans le dossier app/providers
et étendez la classe ServiceProvider
. Utilisez les méthodes register
et boot
selon vos besoins. Ensuite, ajoutez l'adresse du fournisseur dans le fichier providers.php
situé dans le dossier bootstrap
.
Tous les tableaux WordPress par défaut sont disponibles en tant que modèles dans le dossier app/Model
. Les tableaux WooCommerce
seront bientôt ajoutés. Vous pouvez utiliser à la fois le puissant Query Builder et Eloquent pour interagir avec ces tables.
( 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 vous souhaitez utiliser une nouvelle table comme modèle, créez sa classe en étendant la classe FalconBaseServicesModelBaseModel
. Si la table n'utilise pas le préfixe par défaut, définissez $with_prefix
sur false :
protected $ with_prefix = false ;
Les règles et l'utilisation des modèles et de Query Builder/Eloquent sont exactement comme la documentation Laravel.
Par défaut, Blade est utilisé comme moteur de modèle, dont l'utilisation est légèrement différente de la norme. Faites attention à l'exemple :
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render ();
Vous pouvez également utiliser Brindille. La classe dérivée de l'interface app/Services/TemplateEngine/Template.php
est disponible dans le chemin app/Services/TemplateEngine/Implements/Twig.php
. Ajoutez simplement Twig au plugin via Composer puis éditez le fichier app/Providers/TemplateServiceProvider.php
. L'utilisation est similaire à l'exemple ci-dessus.
Pour utiliser le logger, utilisez falconLogger() :
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]);
Si vous souhaitez que ProcessIdProcessor
, GitProcessor
et MemoryUsageProcessor
soient inclus dans le journal, définissez les éléments associés dans le fichier .env sur true.
Pour utiliser le courrier électronique, vous pouvez utiliser falconEmail() :
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null );
Pour plus d'informations sur l'utilisation du courrier électronique, reportez-vous au fichier app/Services/Sender/Implements/Email/PHPMailer.php
.
Bon codage !