ibelar / atk-wordpress
在WordPress中启用敏捷工具框架的使用
Requires
- atk4/ui: ^1.6
Requires (Dev)
- phpunit/phpunit: 4.0.*
- dev-dev-master
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-feature/AtkWpModelManager
- dev-feature/update-to-fomantic
- dev-feature/atk-158
- dev-release/1.3.0
- dev-feature/jsurl
- dev-feature/autoloader
- dev-release/1.2.0
- dev-fix/atk1.4
- dev-feature/atk1.4
- dev-fix/Server-error-500-php-256-stack-deep-level
- dev-feature/multi-Plugin-loader
- dev-feature/better-enqueue
- dev-release/1.1.1
- dev-release/1.1.0
- dev-release/1.0.4
- dev-release/1.0.3
- dev-release/1.0.2
- dev-release/1.0.0
- dev-release/1.0.1
This package is auto-updated.
Last update: 2024-09-11 20:26:48 UTC
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)
- config-default.php
- 插件可能需要的默认配置。开发者可以定义自己的配置值并在整个插件中使用它们。
- config-panel.php
- 创建Wordpress中管理部分面板所需的配置。您将定义您插件需要的面板或子面板。
- config-metabox.php
- 创建Wordpress帖子中元框部分的配置。
- config-widget.php
- 创建Wordpress小工具所需的配置。
- config-dashboard.php
- 创建Wordpress仪表板小工具所需的配置。
- config-shortcode.php
- 创建Wordpress短语的配置。
- config-enqueue
- 在Wordpress中加载自定义js或css文件的配置。
关于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框架的信息