wpdesk / wp-init
0.9.1
2024-08-13 07:37 UTC
Requires
- php: >=7.2 | ^8
- php-di/php-di: ^6 || ^7
- psr/container: ~1.0.0 || ^2
Requires (Dev)
- brain/monkey: ^2.6
- phpunit/phpunit: ^8 || ^9
- symfony/filesystem: ^5.4 || ^6.2
- wpdesk/phpstan-rules: ^1.1
- wpdesk/wp-basic-requirements: ^3
- wpdesk/wp-builder: ^2.0
- wpdesk/wp-code-sniffer: ^1.3
Suggests
- wpdesk/wp-basic-requirements: Enables your plugin to check an environment requirement before instantiation, e.g. PHP version or active plugins
Conflicts
- wpdesk/wp-basic-requirements: <3 >=4
README
用超级能力启动您的插件。
安装
要在项目中使用此库,请将其添加到composer.json
composer require wpdesk/wp-init
创建插件
使用此库的首选方法是通过面向对象编程练习,在多个类中组织您的操作和过滤器,尽管这不是唯一可以交互(并从中受益)的方式。
插件初始化包括以下步骤
- 创建一个常规的主插件文件,遵循头部要求
- 为您的服务准备DI容器定义。
- 声明所有包含在钩子绑定中的类。
以上将主插件文件限制在一个简短且简单的结构。
<?php
/**
* Plugin Name: Example Plugin
*/
use WPDesk\Init\Init;
require __DIR__ . '/vendor/autoload.php';
Init::setup('config.php')->boot();
插件配置
对于插件配置,您可以关注简洁的声明性配置。
<?php
return [
'hook_resources_path' => 'config/hook_providers',
'services' => 'config/services.inc.php',
'cache_path' => 'generated',
'requirements' => [
'plugins' => [
'name' => 'woocommerce/woocommerce.php',
'nice_name' => 'WooCommerce',
]
],
'plugin_class_name' => 'Example\Plugin',
];
使用wpdesk/wp-builder
作为对遗留代码的支持,您可以使用此库的能力,将现有的、使用wpdesk/wp-builder
的代码库与自动装配的服务相结合。
除了配置服务外,您唯一要做的改变是添加hookables作为类字符串,以便DI容器处理。
- $this->add_hookable( new \WPDesk\Init\Provider\I18n() );
+ $this->add_hookable( \WPDesk\Init\Provider\I18n::class );
致谢
此包深受Cedaro的wp-plugin
和Alain Schlesser的basic-scaffold
的启发。
许可
版权(c)2024 WPDesk
此库根据MIT许可。