dsawardekar/wp-requirements

WordPress插件中处理最小系统要求的库

0.3.0 2014-05-13 15:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:27:14 UTC


README

一个小型库,可以轻松处理WordPress插件中最低系统要求的检测。

Screenshot

功能

  • 检测与您的插件不兼容的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类,包含两个方法,checkmessage

您的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文件中。

  1. Requirements.php文件复制到您的项目中。
  2. 使用require_once将此文件包含到您插件的主文件中。
  3. 实例化Requirements对象,并调用其satisfied方法,如上所述。

修改

请发送拉取请求,而不是直接在项目中修改要求文件。

如果您必须对Requirements.php进行修改,请通过将WP_前缀重命名为唯一的名称(例如您的公司名称)来操作。

例如:Acme_Requirements。将WP_替换为Acme_即可。

示例

  1. 使用MinRequirements的示例插件.
  2. 示例WooCommerce插件.

感谢

贡献

请包括您的系统和环境详细信息,以便更快地解决错误报告。与错误报告一起提供的失败测试非常出色!

欢迎提交拉取请求!

该项目附带一个与Travis集成的测试套件。在提交PR之前,请确保测试套件通过。还请尝试在任何重大更改的同时包含测试。

此外,请注意,该项目使用git flow分支模型。PR应针对develop分支创建。

许可证

MIT许可证。版权所有 © 2014 Darshan Sawardekar