nekojira/wp-requirements

WordPress插件开发者工具,用于检查当前安装的PHP版本、WordPress版本和PHP扩展。

1.4.1 2015-10-05 09:08 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:10:39 UTC


README

此项目已废弃,您不应使用它。

仅供参考。

WP Requirements

GitHub version Scrutinizer Code Quality

嗨!我是一个小小的实用工具,您可以在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版本更新的深入解释。