fastadmin二次开发使用教程php,fastAdmin插件开发教程之简明开发入门教程

前言

FastAdmin的插件功能基于think-addons进行二次开发,在此向5ini99表示感谢!下面的插件开发文档中的部分内容也是直接引用自think-addons。

在开发FastAdmin的插件之前建议你先了解下FastAdmin插件的目录结构说明

新建插件

我们可以在命令行使用命令php think addon -a 插件名称 -c create创建一个插件的默认结构,FastAdmin会在addons目录生成插件的基本信息和文件

7a8784d2d29a7f7b746e18fec95f42ef.png

9e9ea857f4f8b8e63ebc38337185743e.png

插件配置

FastAdmin的插件配置分为插件启动配置、基础配置和扩展配置三个部分

插件启动配置

插件启动配置文件位于application/extra/addons.php,FastAdmin在后台安装或卸载插件时会自动更新此文件,你也可以手动配置插件的启动配置,配置如下

return [

// 是否自动读取取插件钩子配置信息(默认是关闭)

'autoload' => false,

// 当关闭自动获取配置时需要手动配置hooks信息

'hooks' => [

// 可以定义多个钩子

'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件,

// 多个插件可以用数组也可以用逗号分割

]

];

插件基础配置

基础配置对应的是插件文件info.ini,此文件控制着插件的基础信息及开关状态,目前支持以下几个配置信息

name = 插件英文唯一标题

title = 插件标题

intro = 插件介绍

author = 插件作者

website = https://www.fastadmin.net

version = 1.0.0

state = 1

插件扩展配置

扩展配置对应的是插件文件夹中的config.php,此文件需要返回一个二维数据,此文件后安装以后用户将可以在插件管理中手动修改其中的配置。

return [

[

//配置名称,该值在当前数组配置中确保唯一

'name' => 'yourname',

//配置标题

'title' => '配置标题',

//配置类型,支持string/text/number/datetime/array/select/selects/image/images/file/files/checkbox/radio/bool

'type' => 'string',

//配置select/selects/checkbox/radio/bool时显示的列表项

'content' => [

'1' => '显示',

'0' => '不显示'

],

//配置值

'value' => '1',

//配置验证规则,更之规则可参考nice-validator文件

'rule' => 'required',

'msg' => '验证失败提示文字',

'tip' => '字段填写帮助',

'ok' => '验证成功提示文字'

],

[

'name' => 'yourname2',

'title' => '配置标题2',

'type' => 'radio',

'content' => [

'1' => '显示',

'0' => '不显示'

],

'value' => '1',

'rule' => 'required',

'msg' => '验证失败提示文字',

'tip' => '字段填写帮助',

'ok' => '验证成功提示文字'

]

];

创建插件

创建的插件可以在view视图中使用,也可以在php业务中使用

安装完成后访问系统时会在项目根目录生成名为addons的目录,在该目录中创建需要的插件。

下面写一个例子:

创建test插件

php think addon -a test -c create

创建钩子实现类

在test目录中创建Test.php类文件。注意:类文件首字母需大写

namespace addonstest; // 注意命名空间规范

use appcommonlibraryMenu;

use thinkAddons;

/**

* 插件测试

*/

class Test extends Addons // 需继承thinkaddonsAddons类

{

/**

* 插件安装方法

* @return bool

*/

public function install()

{

$menu = [

[

'name' => 'test',

'title' => '插件示例',

'ismenu' => 1,

'icon' => 'fa fa-list',

'remark' => '插件开发示例描述',

]

];

Menu::create($menu);

}

/**

* 插件卸载方法

* @return bool

*/

public function uninstall()

{

Menu::delete('test');

return true;

}

/**

* 插件启用方法

*/

public function enable()

{

Menu::enable('test');

}

/**

* 插件禁用方法

*/

public function disable()

{

Menu::disable('test');

}

/**

* 实现的testhook钩子方法

* @return mixed

*/

public function testhook($param)

{

// 调用钩子时候的参数信息

print_r($param);

// 当前插件的配置信息,配置信息存在当前目录的config.php文件中,见下方

print_r($this->getConfig());

// 可以返回模板,模板文件默认读取的为插件目录中的文件。模板名不能为空!

return $this->fetch('info');

}

}

创建钩子模板文件

在test目录中创建info.html模板文件,钩子在使用fetch方法时对应的模板文件。

hello tpl

如果插件中需要有链接或提交数据的业务,可以在插件中创建controller业务文件,

要访问插件中的controller时使用addon_url生成url链接。

如下:

link test

格式为:

test为controller中的类名,link为controller中的方法

创建插件的controller文件

在test目录中创建controller目录,在controller目录中创建Action.php文件

controller类的用法与tp5中的controller一致

namespace addonstestcontroller;

class Action

{

public function link()

{

echo 'hello link';

}

}

如果需要使用view模板则需要继承thinkaddonsController类

模板文件所在位置为插件目录的view中,规则与模块中的view规则一致

namespace addonstestcontroller;

use thinkaddonsController;

class Action extends Controller

{

public function link()

{

return $this->fetch();

}

}

使用钩子

创建好插件后就可以在正常业务中使用该插件中的钩子了

使用钩子的时候第二个参数可以省略

模板中使用钩子

{:hook('testhook', ['id'=>1])}

php业务中使用

只要是thinkphp5正常流程中的任意位置均可以使用

hook('testhook', ['id'=>1])

插件目录结构

最终生成的目录结构为

项目目录

- addons

-- test

--- controller

---- Action.php

--- view

---- action

----- link.html

--- config.php

--- info.ini

--- info.html

--- Test.php

- application

- thinkphp

- extend

- vendor

- public

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值