ibelar/atk-wordpress

在WordPress中启用敏捷工具框架的使用


README

这是什么?

Atk-wordpress帮助为WordPress构建插件。使用此包,插件UI元素使用Agile Toolkit Framework(PHP框架)创建。

此包使实现WordPress的每个组件变得容易,例如

  • 管理面板和子面板;
  • 小工具;
  • 仪表板小工具;
  • 元框;
  • 短代码;

然后,每个组件的UI元素,如 表单、列表器、CRUD、图标、按钮、表格等,都很容易通过PHP的Agile Toolkit框架添加到组件中。

创建WordPress组件就像

  • 定义其参数以满足WordPress的要求;
  • 定义用于组件的正确视图类;
  • 通过添加使用Agile Toolkit框架的UI元素来定义组件视图;

此包将负责正确设置组件运行所需的必要WordPress钩子和操作。

此外,定义的组件将在ajax下工作,无论是在WordPress的admin部分还是前端部分,直接开箱即用。

要求

此包需要composer来安装所有依赖项。

入门

使用入门项目

虽然可以从零开始,但最简单的方法是开始使用atk-wordpress-starter

  • 下载或克隆入门项目到您的WordPress安装插件文件夹中,
  • 将其重命名为与您的插件名称和命名空间匹配,通过替换标记为TODO的文本,
  • 更新composer.json文件并运行composer。

入门项目为每个组件提供空配置文件,除了一个,即显示简单消息的管理面板。

注意:如果直接使用入门项目,将创建一个新的插件名atk-wordpress-starter。一旦激活,新的管理面板将通过WordPress管理部分的“Hello Atkwp”菜单项访问。

从头开始

创建使用此包的插件需要最少的文件和文件夹结构。这些文件和文件夹应直接位于构建的插件文件夹下。

  • composer.json;
  • plugin.php文件;
  • src文件夹,其中包含Plugin.php类;
    • Plugin.php必须扩展AtkWp类并实现atkwp\interfaces\PluginInterface。
  • 配置文件夹;
    • 其中包含默认和组件配置。
  • assets文件夹;
    • 其中包含自定义CSS、JS或图像文件。

Composer.json

composer配置文件必须要求此包,并且自动加载应与插件命名空间匹配。

  "require": {
    "ibelar/atk-wordpress": "^1.0"
  },
  "autoload": {
      "psr-4": {
        "atkstarter\\" : "src/"
      }
  }

plugin.php文件

这是WordPress中任何其他插件所需的插件入口点。它应包含您的插件名称和描述。plugin.php文件还负责创建和实例化Plugin.php类。它还将调用Plugin::booth()方法。booth()方法将加载配置文件中定义的所有组件,并正确连接它们的WordPress操作。

它通常会这样看起来

<?php
/*
Plugin Name: My Plugin name
Description: My plugin description.
Version: 1.0
*/

namespace my_plugin_namespace;

use atkwp\controllers\ComponentController;
use atkwp\helpers\Pathfinder;

require 'vendor/autoload.php';

if (array_search(ABSPATH . 'wp-admin/includes/plugin.php', get_included_files()) === false) {
    require_once ABSPATH . 'wp-admin/includes/plugin.php';
}

$atk_plugin_name = "myPluginName";
$atk_plugin = __NAMESPACE__."\\Plugin";

$$atk_plugin_name = new  $atk_plugin($atk_plugin_name, new Pathfinder(plugin_dir_path(__FILE__)), new ComponentController());

if (!is_null( $$atk_plugin_name)) {
    $$atk_plugin_name->boot(__FILE__);
}

Plugin.php类

主插件文件。插件类必须继承AtkWp类并实现PluginInterface接口。

至少应该看起来像这样

<?php
/**
 * The Plugin implementation.
 */

namespace my_plugin_namespace;

use atkwp\interfaces\PluginInterface;
use atkwp\AtkWp;

class Plugin extends AtkWp implements PluginInterface
{
    public function init()
    {
        // Uncommented this for database connectivity.
        //$this->setDbConnection();
    }

    public function activatePlugin()
    {
        // TODO: Implement activatePlugin() method.
    }

    public function deactivatePlugin()
    {
        // TODO: Implement deactivatePlugin() method.
    }
}

配置文件夹

这是配置文件应该存放的位置。Wordpress中每个可能的组件都有一个配置文件,以及一个插件可能需要的默认配置值。

一般来说,组件配置需要使用实现组件详细信息的php类。组件类必须继承正确的组件类型类,例如,面板组件类将继承PanelComponent类型类。每个组件的类型类,除了WidgetComponent外,都是Agile Toolkit视图,Wordpress需要时将自动输出。因此,您可以使用组件类就像使用常规的Agile Toolkit视图类一样。(atk4\ui)

关于WidgetComponent的说明:WidgetComponent类型类是唯一一个不是从常规atk4\ui\View类派生的。原因是Wordpress中的Widget类必须继承\Wp_Widget。然而,当运行\Wp_Widget::widget()或\Wp_Widget::form()方法时,一个atk4\ui/View对象作为参数传递,以便能够在小工具中添加atk UI元素。

资源文件夹

插件需要的资源。通常包含

  • 一个js文件夹;
  • 一个css文件夹;
  • 一个图片文件夹;

示例插件

除了插件启动项目之外,还有一个更完整的插件示例(atk-wordpress-sample),它使用了大多数Wordpress组件。

许可协议

版权(c)2017 Alain Belair。MIT许可协议,

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他方式,无论该责任源于、因之产生或与之有关软件或软件的使用或其他交易。

Agile Toolkit

要了解更多关于Agile Toolkit框架的信息