Viele WordPress-Entwickler sehnen sich nach Funktionen wie Eloquent, Blade, Service Container und Service Provider, die ihnen beim Erstellen leistungsstarker Plugins helfen. Falcon ist hier, um das Spiel zu verändern und Ihnen diese Funktionen zur Verfügung zu stellen.
Bitte beachten Sie: Dieses Plugin stellt eine Reihe von Diensten bereit und ist nicht als Grundlage für die Erstellung neuer Plugins gedacht.
Mindestens PHP-Version: 8.2
Verzeichnis erstellen: Wenn der Ordner mu-plugins
im Ordner wp-content
nicht vorhanden ist, erstellen Sie ihn. Legen Sie den Ordner falcon-base-services
darin ab.
Loader-Datei erstellen: Erstellen Sie im Stammverzeichnis des mu-plugins
-Ordners eine PHP-Datei mit einem Namen Ihrer Wahl und fügen Sie den folgenden Code hinzu:
<?php
require ' falcon-base-services/falcon-base-services.php ' ;
Beachten Sie, dass der Inhalt des mu-plugins
-Ordners nicht im WordPress-Admin aktiviert werden muss und vor allen anderen Plugins ausgeführt wird. Außerdem scannt WordPress die Ordner in mu-plugins
nicht, es sei denn, es wird ausdrücklich dazu aufgefordert.
Abhängigkeiten installieren: Öffnen Sie das Terminal im Ordner falcon-base-services
und führen Sie den folgenden Befehl aus:
composer install
Wenn Sie Composer nicht installiert haben, können Sie es über diesen Link herunterladen und installieren.
Das Plugin ist nun einsatzbereit. Lassen Sie uns die Funktionen und deren Verwendung erkunden.
Wenn Sie die Site in den Wartungsmodus versetzen müssen, benennen Sie einfach die Datei maintenance.example.php
im storage
in maintenance.php
um. Sie können den Inhalt der Datei auch nach Bedarf bearbeiten.
Die in der Datei .env.example
erwähnten Elemente sind wichtig. Benennen Sie die Datei in .env
um.
Sie können Ihre Variablen in der .env
Datei festlegen und sie wie folgt überall in Ihrem Code verwenden:
$ _ENV [ ' item ' ];
//or
env ( ' item ' )
Um ein Element in der globalen Variablen $_ENV festzulegen, können Sie Folgendes verwenden:
setEnv ( $ key , $ value );
Sie können in Ihrem Projekt auch Konfigurationsdateien verwenden, die ein Array zurückgeben. Platzieren Sie die Konfigurationsdatei im Konfigurationsordner und greifen Sie mit der Funktion falconConfig($file, $key = null, $folder_path = null)
auf die gewünschten Werte zu.
$file
: Der Name der Konfigurationsdatei.
$key
: Der Schlüssel des angeforderten Arrays. Wenn null, wird der gesamte Dateiinhalt zurückgegeben.
$folder_path
: Standardmäßig befindet sich der Pfad zu den Konfigurationsdateien im Konfigurationsordner. Wenn Sie neue Konfigurationen in Ihrem Projekt haben möchten, können Sie auch den Pfad zum neuen Ordner angeben.
Das Plugin verwendet einen leistungsstarken Service-Container mit Autowiring-Funktionen.
Singleton-Dienste: Registrieren Sie einen Singleton-Dienst mit:
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);
Nicht-Singleton-Dienste: Registrieren Sie einen Nicht-Singleton-Dienst mit:
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);
Verschlüsse verwenden: Sie können auch Verschlüsse verwenden:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; });
Verwenden der Dienste: Verwenden Sie die get
-Methode, um die Dienste abzurufen:
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);
Auflösen von Methoden: Lösen Sie eine Methode aus einer Klasse auf, indem Sie Folgendes verwenden:
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );
Dadurch werden automatisch alle Abhängigkeiten aufgelöst, die sowohl für die Klasse als auch für die Methode erforderlich sind.
Um einen Dienstanbieter zu erstellen, erstellen Sie eine Klasse im Ordner app/providers
und erweitern Sie die Klasse ServiceProvider
. Verwenden Sie nach Bedarf die register
und boot
-Methoden. Fügen Sie dann die Adresse des Anbieters in die Datei providers.php
ein, die sich im bootstrap
-Ordner befindet.
Alle Standard-WordPress-Tabellen sind als Modelle im Ordner app/Model
verfügbar. WooCommerce
-Tabellen werden in Kürze hinzugefügt. Sie können sowohl den leistungsstarken Query Builder als auch Eloquent verwenden, um mit diesen Tabellen zu interagieren.
( 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 ();
Wenn Sie eine neue Tabelle als Modell verwenden möchten, erstellen Sie ihre Klasse, indem Sie die Klasse FalconBaseServicesModelBaseModel
erweitern. Wenn die Tabelle nicht das Standardpräfix verwendet, setzen Sie $with_prefix
auf false:
protected $ with_prefix = false ;
Die Regeln und die Verwendung von Modellen und Query Builder/Eloquent entsprechen genau der Laravel-Dokumentation.
Standardmäßig wird Blade als Template-Engine verwendet, die sich in der Verwendung geringfügig vom Standard unterscheidet. Beachten Sie das Beispiel:
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render ();
Sie können auch Twig verwenden. Die von der Schnittstelle app/Services/TemplateEngine/Template.php
abgeleitete Klasse ist im Pfad app/Services/TemplateEngine/Implements/Twig.php
verfügbar. Fügen Sie Twig einfach über Composer zum Plugin hinzu und bearbeiten Sie dann die Datei app/Providers/TemplateServiceProvider.php
. Die Verwendung ähnelt dem obigen Beispiel.
Um den Logger zu verwenden, verwenden Sie falconLogger():
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]);
Wenn Sie möchten, dass ProcessIdProcessor
, GitProcessor
und MemoryUsageProcessor
in das Protokoll aufgenommen werden, legen Sie die entsprechenden Elemente in der .env-Datei auf „true“ fest.
Um E-Mail zu verwenden, können Sie falconEmail() verwenden:
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null );
Weitere Informationen zur Verwendung von E-Mail finden Sie in der Datei app/Services/Sender/Implements/Email/PHPMailer.php
.
Viel Spaß beim Codieren!