多くの WordPress 開発者は、強力なプラグインの構築に役立つ Eloquent、Blade、Service Container、Service Provider などの機能を切望しています。 Falcon は、ゲームを変革し、これらの機能をすぐに使えるようにするためにここにいます。
注意: このプラグインは一連のサービスを提供するものであり、新しいプラグインを作成するためのベースとして使用することを目的としたものではありません。
PHP の最小バージョン: 8.2
ディレクトリの作成: wp-contentフォルダー内に、 mu-pluginsフォルダーが存在しない場合は作成します。その中にfalcon-base-servicesフォルダーを配置します。
ローダー ファイルの作成: mu-pluginsフォルダーのルートに、任意の名前で PHP ファイルを作成し、次のコードを追加します。
<?php
require ' falcon-base-services/falcon-base-services.php ' ; mu-pluginsフォルダーの内容は WordPress 管理画面でアクティブにする必要はなく、他のすべてのプラグインよりも前に実行されることに注意してください。また、WordPress は、明示的に指示されない限り、 mu-plugins内のフォルダーをスキャンしません。
依存関係のインストール: falcon-base-servicesフォルダーでターミナルを開き、次のコマンドを実行します。
composer installComposer をインストールしていない場合は、このリンクからダウンロードしてインストールできます。
これでプラグインを使用する準備が整いました。その機能とその使用方法を見てみましょう。
サイトをメンテナンス モードにする必要がある場合は、 storageフォルダー内のmaintenance.example.phpファイルの名前をmaintenance.phpに変更するだけです。必要に応じてファイルの内容を編集することもできます。
.env.exampleファイルで言及されている項目は重要です。ファイルの名前を.envに変更します。
次のように、 .envファイルに変数を設定し、コード内の任意の場所で使用できます。
$ _ENV [ ' item ' ];
//or
env ( ' item ' )グローバル $_ENV 変数に項目を設定するには、次を使用できます。
setEnv ( $ key , $ value );配列を返す構成ファイルをプロジェクトで使用することもできます。構成ファイルを config フォルダーに配置し、 falconConfig($file, $key = null, $folder_path = null)関数を使用して目的の値にアクセスします。
$file : 構成ファイルの名前。
$key : 要求された配列のキー。 null の場合、ファイルの内容全体が返されます。
$folder_path : デフォルトでは、構成ファイルへのパスは config フォルダー内にあります。プロジェクトに新しい構成を含める場合は、新しいフォルダーへのパスを指定することもできます。
このプラグインは、自動配線機能を備えた強力なサービス コンテナを使用します。
シングルトン サービス:以下を使用してシングルトン サービスを登録します。
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);非シングルトン サービス:以下を使用して非シングルトン サービスを登録します。
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);クロージャの使用:クロージャを使用することもできます。
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; });サービスの使用: getメソッドを使用してサービスを取得します。
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);メソッドの解決:以下を使用してクラスからメソッドを解決します。
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );これにより、クラスとメソッドの両方で必要な依存関係が自動的に解決されます。
サービス プロバイダーを作成するには、 app/providersフォルダーにクラスを作成し、 ServiceProviderクラスを拡張します。必要に応じて、 registerとbootメソッドを使用します。次に、 bootstrapフォルダーにあるproviders.phpファイルにプロバイダーのアドレスを追加します。
すべてのデフォルトの WordPress テーブルは、 app/Modelフォルダー内のモデルとして利用できます。 WooCommerceテーブルは間もなく追加される予定です。強力なクエリ ビルダーと Eloquent の両方を使用して、これらのテーブルを操作できます。
( 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 ();新しいテーブルをモデルとして使用する場合は、 FalconBaseServicesModelBaseModelクラスを拡張してそのクラスを作成します。テーブルがデフォルトのプレフィックスを使用しない場合は、 $with_prefix false に設定します。
protected $ with_prefix = false ;モデルとクエリビルダー/Eloquent のルールと使用法は、Laravel ドキュメントとまったく同じです。
デフォルトでは、テンプレート エンジンとして Blade が使用されますが、標準とは使用方法が少し異なります。次の例に注目してください。
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render ();小枝を使用することもできます。インターフェースapp/Services/TemplateEngine/Template.phpから派生したクラスは、パスapp/Services/TemplateEngine/Implements/Twig.phpで利用できます。 Composer 経由で Twig をプラグインに追加し、ファイルapp/Providers/TemplateServiceProvider.php編集するだけです。使用方法は上記の例と同様です。
ロガーを使用するには、falconLogger() を使用します。
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]); ProcessIdProcessor 、 GitProcessor 、およびMemoryUsageProcessorをログに含める場合は、 .env ファイル内の関連項目を true に設定します。
電子メールを使用するには、falconEmail() を使用できます。
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null );電子メールの使用方法の詳細については、ファイルapp/Services/Sender/Implements/Email/PHPMailer.phpを参照してください。
コーディングを楽しんでください!