dsawardekar / wp-requirements
WordPress插件中处理最小系统要求的库
Requires (Dev)
- phpunit/phpunit: ~3.7.0
This package is not auto-updated.
Last update: 2024-09-14 15:27:14 UTC
README
一个小型库,可以轻松处理WordPress插件中最低系统要求的检测。
功能
- 检测与您的插件不兼容的PHP版本。
- 检测与您的插件不兼容的WordPress版本。
- 检测PHP扩展的缺失。
- 在不激活您的插件的情况下向用户显示错误。
- 简单的API以支持自定义最低要求。
入门
该库包含一个WP_Min_Requirements
类,可以用来检测一些基本系统要求,如WordPress和PHP版本。
首先我们创建类的实例,并在条件中使用它的satisfied
方法。如果条件满足,您可以在其中实例化您的插件。
<?php $requirements = new WP_Min_Requirements(); if ($requirements->satisfied()) { // minimum requirements satisfied // create your plugin here }
接下来,我们需要处理最低要求不满足的情况。该库提供了一个WP_Faux_Plugin
,通过通知用户最低要求不满足来处理这种情况。
您只需要创建它,并传递您的插件名称和要求的结果对象。
<?php $requirements = new WP_Min_Requirements(); if ($requirements->satisified()) { // create your plugin here } else { $fauxPlugin = new WP_Faux_Plugin('My Plugin Name', $requirements->getResults()); $fauxPlugin->enable(__FILE__); }
当要求不满足时,用户将看到如上所示的消息。
检测PHP和WordPress的特定版本
要创建自定义要求,您需要扩展WP_Requirements
类并提供一个自定义的getRequirements
方法。它应该返回一个要求对象数组。
以下是一个与PHP 5.3.2和WordPress 3.5匹配的WP_Min_Requirements
类。
<?php class WP_Min_Requirements extends WP_Requirements { function getRequirements() { $requirements = array(); // Min requirements for Composer $requirement = new WP_PHP_Requirement(); $requirement->minimumVersion = '5.3.2'; array_push($requirements, $requirement); $requirement = new WP_WordPress_Requirement(); $requirement->minimumVersion = '3.5.0'; array_push($requirements, $requirement); return $requirements; } }
自定义要求
您还可以自定义特定于您的插件的要求。首先,您需要创建一个自定义的Requirement
类,包含两个方法,check
和message
。
您的check
方法应该执行自定义检测并返回true或false。而message
方法应该返回当要求未满足时显示给用户的消息。
例如,要检查Akismet
插件是否在使用中,
<?php class Akismet_Requirement { function check() { return is_plugin_active('akismet/akismet.php'); } function message() { return 'Akismet Required'; } }
然后将其封装到一个新的类中,这个类扩展了WP_Requirements
类,并将这个要求投入使用。
<?php class My_Custom_Requirements extends WP_Requirements { function getRequirements() { $requirements = array(); array_push($requirements, new Akismet_Requirement()); return $requirements; } }
其他要求
使用WP_Modern_Requirements类来确保PHP 5.5和所需的扩展已存在。
要测试要求消息,请使用WP_Failing_Requirements类。
用法
该库及其所有类都打包在Requirements.php文件中。
- 将Requirements.php文件复制到您的项目中。
- 使用
require_once
将此文件包含到您插件的主文件中。 - 实例化Requirements对象,并调用其satisfied方法,如上所述。
修改
请发送拉取请求,而不是直接在项目中修改要求文件。
如果您必须对Requirements.php
进行修改,请通过将WP_
前缀重命名为唯一的名称(例如您的公司名称)来操作。
例如:Acme_Requirements
。将WP_
替换为Acme_
即可。
示例
感谢
- 感谢Square Penguin提供错误消息的想法。
贡献
请包括您的系统和环境详细信息,以便更快地解决错误报告。与错误报告一起提供的失败测试非常出色!
欢迎提交拉取请求!
该项目附带一个与Travis集成的测试套件。在提交PR之前,请确保测试套件通过。还请尝试在任何重大更改的同时包含测试。
此外,请注意,该项目使用git flow分支模型。PR应针对develop
分支创建。
许可证
MIT许可证。版权所有 © 2014 Darshan Sawardekar