nekojira / wp-requirements
WordPress插件开发者工具,用于检查当前安装的PHP版本、WordPress版本和PHP扩展。
This package is not auto-updated.
Last update: 2024-09-28 18:10:39 UTC
README
此项目已废弃,您不应使用它。
仅供参考。
WP Requirements
嗨!我是一个小小的实用工具,您可以在WordPress插件开发中使用它。
将其包含在您的插件中,我将检查PHP版本或安装的WordPress版本是否正确。如果不正确,我会通知您,并允许您在WordPress仪表板中显示一条消息,这样管理员就会知道为什么您的插件无法激活。
必要的前言 - WordPress没有(遗憾的是)依赖管理系统,也不支持Composer。这使得使用Composer包或重新分发/重复使用此库等库变得毫无意义,甚至危险,因为更多插件在不同版本中共享相同的库将发生冲突,导致不可预测的行为和错误。由于这是一个小型库,您最好将其fork并“命名空间”以WordPress的方式(例如,将
WP_Requirements
重命名为Your_Plugin_Prefix_Requirements
等),同时将其包含在您的插件或主题中。
用法
将需求传递给此类的新实例,如下所示
$my_plugin_requirements = new WP_Requirements(
'My Plugin Name',
plugin_basename( __FILE__ ),
array(
'PHP' => 'x.y.z',
'WordPress => 'x.y.z.',
'Extensions' => array(
'extension_name',
'another_extension',
)
)
);
将‘x.y.z’替换为您想要要求的语义版本号。对于PHP扩展,只需将扩展名称作为数组字符串值传递。
您必须在参数数组中指定至少一个值。注意数组键的大小写。
然后,您可以使用以下方法来了解它是否通过(将返回bool)
$my_requirements_check->pass();
实现
您有两种方法可以将WP Requirements包含到您的项目中。
复制此类(推荐方式)
您可以将此项目中/src/wp-requirements.php
中找到的类复制。
重要!如果您选择这样做,请将此类重命名为您项目使用的名称前缀(例如:从
WP_Requirements
重命名为My_Plugin_Requirements
)。这样,项目之间的命名冲突风险就会降低。
使用Composer(不推荐)
使用以下方式包含此库
$ composer require nekojira/wp-requirements
但是,如果您选择这样做,请记住Composer只能与PHP 5.3.0及以后版本一起使用。如果您想要对较旧的PHP版本进行检查,但想使用Composer,您需要一种解决方案。
您可以通过在您的package.json
文件中包含以下内容,指定一个与PHP 5.2兼容的额外自动加载器,例如使用PHP 5.2 Autoloading for Composer
"require": {
"xrstf/composer-php52": "1.*"
},
"scripts": {
"post-install-cmd": [
"xrstf\\Composer52\\Generator::onPostInstallCmd"
],
"post-update-cmd": [
"xrstf\\Composer52\\Generator::onPostInstallCmd"
],
"post-autoload-dump": [
"xrstf\\Composer52\\Generator::onPostInstallCmd"
]
}
注意:看起来Composer52已被废弃,目前已移动到https://github.com/composer-php52/composer-php52 - 如当前维护者所说:“请尽量避免使用此工具。这是一个糟糕的漏洞,经常损坏,并且与Composer的内部结构紧密相关。此包最初于2012年开发,当时PHP 5.2在便宜的Web托管服务中更为常见。” -- 请更新您的服务器以使用合适的PHP版本。
用法示例
无论是使用include_once
还是使用Composer首先,然后在插件标题之后,在插件的开头放置一些代码,如下所示
$my_plugin_requirements = new WP_Requirements(
'My Plugin Name',
plugin_basename( __FILE__ ),
array(
'PHP' => '5.3.2',
'WordPress' => '3.9.0',
)
);
if ( $my_plugin_requirements->pass() === false ) {
// Deactivate the plugin and print an admin notice.
$my_plugin_requirements->halt();
// Halt the execution of the rest of the plugin.
return;
}
// Then from here on, continue with your code.
// Perhaps with `include_once 'includes/main_class.php'`
// which may contain potentially incompatible PHP code.
资源
WP Requirements受到了一篇在wordpress.org发布的文章的启发,该文章的链接为https://make.wordpress.org/plugins/2015/06/05/policy-on-php-versions/
您还可以尝试使用WP Update PHP,不过它只检查PHP版本,并为用户提供为什么应该保持PHP版本更新的深入解释。