許多 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 install
如果您尚未安裝 Composer,可以從此連結下載並安裝它。
該插件現在可以使用了。讓我們探討一下它的功能以及如何使用它們。
如果您需要將網站置於維護模式,只需將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
。
快樂編碼!