许多 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
。
快乐编码!