automattic / jetpack-config
Jetpack配置包,用于初始化其他包并配置Jetpack的功能。可以作为Jetpack包使用所有变体的基础。
Requires
- php: >=7.0
Requires (Dev)
- automattic/jetpack-changelogger: ^4.2.4
- automattic/jetpack-connection: @dev
- automattic/jetpack-import: @dev
- automattic/jetpack-jitm: @dev
- automattic/jetpack-post-list: @dev
- automattic/jetpack-publicize: @dev
- automattic/jetpack-search: @dev
- automattic/jetpack-stats: @dev
- automattic/jetpack-stats-admin: @dev
- automattic/jetpack-sync: @dev
- automattic/jetpack-videopress: @dev
- automattic/jetpack-waf: @dev
- automattic/jetpack-wordads: @dev
- automattic/jetpack-yoast-promo: @dev
Suggests
- automattic/jetpack-autoloader: Allow for better interoperability with other plugins that use this package.
- dev-trunk / 2.0.x-dev
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.15.4
- v1.15.3
- v1.15.2
- v1.15.1
- v1.15.0
- v1.14.0
- v1.13.0
- v1.12.0
- v1.11.1
- v1.11.0
- v1.10.0
- v1.9.6
- v1.9.5
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.0
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.7
- v1.4.6
- v1.4.5
- 1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.1
- v1.0.0
- dev-prerelease
- dev-fix/slack-workflow-branch-detection
- dev-fix/release-branch-typo
- dev-update/generate-branch-plugin
- dev-release-v1.4.3
- dev-feature/reorg
- dev-release-v1.4.2
- dev-release-v1.4.1
- dev-release-v1.4.0
- dev-release-v1.3.0
- dev-release-v1.2.0
This package is auto-updated.
Last update: 2024-09-18 03:17:42 UTC
README
允许启用和初始化由其他包提供的Jetpack功能。
用法
将此包作为依赖项添加到您的项目中
composer require automattic/jetpack-config
添加您计划配置的所有其他包
composer require automattic/jetpack-sync
composer require automattic/jetpack-options
composer require automattic/jetpack-my-jetpack
在您的代码中,在或之前于plugins_loaded优先级1初始化配置包
use Automattic/Jetpack/Config;
// Configuring Jetpack as early as plugins_loaded priority 1
// to make sure every action handler gets properly set.
add_action( 'plugins_loaded', 'configure_jetpack', 1 );
function configure_jetpack() {
$config = new Config();
foreach (
array(
'sync',
'tracking',
'tos',
)
as $feature
) {
$config->ensure( $feature );
}
}
将您的包添加到配置类
您可以通过添加一些东西来使用Config类初始化您的包。
配置方法
在您的包类中最好有一个静态的configure方法。该方法将在plugins_loaded钩子中早期调用。这样,您就可以添加自己的plugins_loaded处理器,并使用标准优先级执行它们。
class Configurable_Package {
public static function configure() {
add_action( 'plugins_loaded', array( __CLASS__, 'on_plugins_loaded' );
}
public static function on_plugins_loaded() {
self::do_interesting_stuff();
}
}
功能启用方法
应将启用方法添加到Config类中,并且只能包含您的配置方法调用。
public function enable_configurable_package() {
Configurable_Package::configure();
return true;
}
注意,方法名应使用功能slug,在这种情况下,为了简单起见,您的功能slug是configurable_package
。当您添加您的功能时,它应该是独特且可识别的,如sync
或tracking
。
功能slug
为了确保功能由Config类支持,您需要将其slug添加到配置类属性中
/**
* The initial setting values.
*
* @var Array
*/
protected $config = array(
// ...
'configurable_package' => false,
// ...
);
确保选项调用
每个消费者将从自己的Config类实例初始化您的包,并且每个消费者都可以调用$config->ensure( 'your-feature', $options )
传递不同的选项。
您的包需要处理这些选项,并在不同消费者传递不同选项时决定如何处理它们。
您可以通过为Config类创建一个ensure_options_{$package_slug}
方法来实现这一点。例如
public function ensure_options_configurable_package() {
$options = $this->get_feature_options( 'configurable_package' );
Configurable_Package::handle_initialization_options( $options );
return true;
}
此方法将在不同的消费者“确保”您的功能并传递一些选项时被调用。它将在调用enable_$feature
方法之前运行,因此您的包必须准备好接收和处理这些选项,在它初始化之前。到那时,它应该已经接收了消费者传递的所有不同选项,并决定了如何处理它们。
确保调用
最后,您需要添加一个代码块,用于检查您的包是否已加载,并将其标记为初始化
if ( $this->config['configurable_package'] ) {
$this->ensure_class( 'Configurable_Package' ) && $this->ensure_feature( 'configurable_package' );
}
此代码执行三件事:它检查当前设置是否请求加载您的包。接下来,它检查运行包所需的类是否存在,然后添加初始化您的类的钩子处理器。之后,您可以在Jetpack包消费者应用程序中使用配置包的接口,并按本README的第一部分所示加载您的包。
配置包依赖项
Config包没有任何composer包依赖项。消费者插件必须要求他们需要的包。
在使用包类之前,Config包将使用Config::ensure_class()
方法验证该类是否存在。这允许消费者插件使用Config包来启用和初始化Jetpack功能,同时只要求所需的包。
在您的WordPress插件中使用此包
如果您计划在WordPress插件中使用此包,我们建议您使用Jetpack Autoloader作为自动加载器。这将允许与其他使用此包的插件实现最大兼容性。
安全性
需要报告安全漏洞?请访问https://automattic.com/security/或直接访问我们的安全漏洞赏金网站https://hackerone.com/automattic。
许可证
jetpack-config遵循GNU通用公共许可证v2(或更新版)