PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

简要说明插件开发流程

管理员 2024-12-14
Fastadmin
6

一、开发流程
1.生成插件
A、命令行方式:(php think addon -a myaddon -c create)
B、使用“插件开发”插件来生成,经过实践发现这种方式比命令行方式生成的更全面。
C、手动写代码:如果不嫌麻烦就采用这个,但虽然麻烦你会知道涉及到了哪些代码与文件夹,最好是采用前两种方式生成之后看一下有哪些代码变动了。

2.配置插件:
A、手动配置
插件启动配置:application/extra/addons.php
插件基础配置:插件文件info.ini
插件扩展配置:插件文件夹中的config.php
B、通过“插件开发”插件来配置

3.创建数据库

4.可手动创建,也可在后台一键CURL (在创建CRUL之前创建数据表。插件后端在application编辑、调试,之后移到插件对应文件夹。插件前端在插件的controller、model、view编辑、调试)。

php think crud -t test

这里“-t”参数指定你要生成的数据表(可以不用写前缀名)

常用参数
-c, --controller[=CONTROLLER] 生成的控制器名,可选,默认根据表名进行自动解析
-m, --model[=MODEL] 生成的模型名,可选,默认根据表名进行自动解析
-i, --fields[=FIELDS] 生成的数据列表中可见的字段,默认是全部
-d, --delete[=DELETE] 删除模式,将删除之前使用CRUD命令生成的相关文件

演示
14.jpg
A,自定义控制器名:webqi/classify表示curd生成的文件到webqi的目录下,但是测试只有控制器、视图文件到了对应的文件夹,其它的都没有成功。
B,自定义模型名:classify 表示设置模型的名称为classify
C,生成之后在这些文件夹下有文件:
application/admin/controller/webqi/ (测试成功)
application/admin/model/webqi/ (没到二级文件夹)
application/admin/view/webqi/ (测试成功)
application/admin/validate/webqi/(没到二级文件夹)
public/assets/js/backend/webqi/ (测试成功)
都只是生成后台管理的文件,其它地方没有生成文件。
需要手动修改命名空间的设置及文件位置,就算修改“自定义控制器名”为"/webqi/classify"等方式也没有成功,不知道是不是因为php版本的原因。手动修改命名空间之后就成功了。命令行删除模式也没有成功,需要手动删除。
D,如果数据库带下划线,如user_exams,则可以如下方式生成curd
360截图20201129112726273.jpg

5.创建菜单
A、命令行创建

php think menu -c test

这里“-c”参数指定控制器
B、通过“插件开发”插件来配置:通过该插件添加的数据保存在fa_auth_rule表中
C、手写创建,可以了解到原理。

6.编写代码

二、创建行为(不是必须)
1、在addon目录中创建addon.php类文件创建行为方法
2、在addon目录中创建行为模板文件
3、在php类中及view添加钩子来使用行为
A、php业务:hook('testhook', ['id'=>1])
B、模板:<div>{:hook('testhook', ['id'=>1])}</div>

三、打包流程
1.在插件的根目录的以文件夹名称的php文件中新建install方法,用于生成后台管理菜单:

$menu = [        [            'name'    => 'chajian',            'title'   => '自写测试',  //菜单名称            'icon'    => 'fa fa-tasks',            'remark'  => '自写测试',            'sublist' => [                ['name' => 'chajian/index', 'title' => '查看'],                ['name' => 'chajian/add', 'title' => '添加'],                ['name' => 'chajian/edit', 'title' => '编辑 '],                ['name' => 'chajian/del', 'title' => '删除'],                ['name' => 'chajian/multi', 'title' => '批量更新'],            ]        ]    ];    Menu::create($menu);    return true;

2.配置插件文件夹下的insta.sql将之前新建插件数据库的语句粘贴进去(将数据库前缀替换为:__PREFIX__)
3.将生成的在根目录的文件夹(application、public、/public/assets/addons/插件/)复制到插件文件夹(application、public、assets)。
4.php think addon -a example -c package 压缩插件包 在根目录的runtime->addons文件夹
5.打包完成

四、参考资料
https://doc.fastadmin.net/doc/ 官方文档
https://doc.fastadmin.net/developer 开发文档
https://ask.fastadmin.net/article/323.html 一张图解析FastAdmin中的表格列表的功能


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部