iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >FastAdmin插件开发辅助增强插件
  • 691
分享到

FastAdmin插件开发辅助增强插件

php数据库安全 2023-09-01 05:09:41 691人浏览 泡泡鱼
摘要

本人开发的FastAdmin插件开发辅助增强插件 不改变官方的开发习惯,但更丝滑,尽最大的努力生成你想要的代码 非常重要 非常重要 非常重要 写在最前面是为了不要漏了,导致插件没有正常工作。 编写代码

本人开发的FastAdmin插件开发辅助增强插件

不改变官方的开发习惯,但更丝滑,尽最大的努力生成你想要的代码

非常重要 非常重要 非常重要

写在最前面是为了不要漏了,导致插件没有正常工作。

编写代码都在插件myaddon目录下,不管前台还是后台的

后台代码project/addons/myaddon/application目录下的代码,断点调试需要在project/application下找到对应的文件进行断点调试

使用本插件必须修改配置文件applicatin/config.PHP,位置大概在文件的第295行。

如果不修改,【FastAdmin插件开发辅助增强插件】不能正常工作。应为本插件是为开发环境准备的,所以不用担心性能安全等问题。生产环境不用调整。

//插件纯净模式,插件启用后是否删除插件目录的application、public和assets文件夹//默认是true,生产环境设置为true,开发环境设置false'addon_pure_mode'       => false,

解决了如下问题:

1)开发插件的时候不想分离代码

官方命令行crud生成的代码跟插件分离。开发的时候代码应该在插件包内才友好!代码尽收眼底,结构清晰。

2)约定大于配置

官方命令生成插件命名空间的代码时候,需要给控制器参数添加目录。其实大多数情况都会用插件名称作为目录,好处是不用思考指定的目录代码到底会在哪里?

3)关联模型生产错误代码

官方命令crud设置关联表,希望使用插件命名空间的模型的时候,有时候跟预期不一致,会默认在app/admin/model下生成代码,其实期望的是app/admin/model/插件名称下生成代码,比如模型。解决关联模型外键匹配模型失败了而生成错误代码的问题。

4)多次关联同一张表,完美配合hasone,belongsto,hasmany

完美解决不重复生成关联方法

5)打包插件不想拷贝文件,过滤版本文件.git

插件打包省去了拷贝文件到插件包的问题。生成的代码都在插件的包内。官方的打包没有成功忽略.git

6)开发的时候希望自动完成代码更新

前端工程师开发nodejs项目的时候一样酷,在命令终端监测代码更新,并及时更新

7) 文件代码已经变更,但是表结构新增了部分字段,还可以用crud吗?

完全可以。这样的情况经常出现。现在用PC端的crud完美解决了。生成代码预览和新旧代码的对比视图。复制你需要的代码到你的ide,是不是有了非一般的感觉。

8) 导出菜单代码

将插件的菜单从数据库导出,并格式成插件的配置代码。如果控制器的action增加或减少,直接编辑选择生成菜单,不用勾选覆盖代码,直接点击保存就会更新菜的功能。再导出型的菜单代码。

9) 支持生成tree列表视图

选择树视图为是,并根据自己关联自己通过pid,设置关联控制器,最后设置关联展示字段只需要设置一个字段用来显示

10) 记录代码覆盖之前的文件

解决不小心覆盖,还可以恢复的机会

如何使用插件

详细的命令参数

php think help addon-crud php think help addon-dev

一键生成CRUD(addon-crud)

只比官方多一个参数

增加了一个参数 -A, --addon=addonname 插件名

常见命令

//生成fa_test表的CRUDphp think addon-crud -A mydemo -t test//生成fa_test表的CRUD且一键生成菜单php think addon-crud -A mydemo -t test -u 1//删除fa_test表生成的CRUDphp think addon-crud -A mydemo -t test -d 1//生成fa_test表的CRUD且控制器生成在二级目录下php think addon-crud -A mydemo -t test -c test//删除fa_test表生成的二级目录的CRUDphp think addon-crud -A mydemo -t test -c test -d 1//生成fa_test_log表的CRUD且生成对应的控制器为testlogphp think addon-crud -A mydemo -t test_log -c testlog//生成fa_test表的CRUD且对应的模型名为testmodelphp think addon-crud -A mydemo -t test -m testmodel//生成fa_test表的CRUD且生成关联模型cateGory,外链为category_id,关联表主键为idphp think addon-crud -A mydemo -t test -r category -k category_id -p id//生成fa_test表的CRUD且所有以list或data结尾的字段都生成复选框php think addon-crud -A mydemo -t test --setcheckboxsuffix=list --setcheckboxsuffix=data//生成fa_test表的CRUD且所有以image和img结尾的字段都生成图片上传组件php think addon-crud -A mydemo -t test --imagefield=image --imagefield=img//关联多个表,参数传递时请按顺序依次传递,支持以下几个参数relation/relationmodel/relationforeignkey/relationprimarykey/relationfields/relationmodephp think crud -t test --relation=category --relation=admin --relationforeignkey=category_id --relationforeignkey=admin_id//生成v_phealth_db2数据库下的fa_test表的CRUDphp think addon-crud -A mydemo -t test --db=v_phealth_db2

一键管理插件(addon-dev)

只比官方多一个行为-c watch,比如mydemo插件

本到插件开发,管理插件几乎只需要两个行为就可以了 -c create|watch

常见命令

//创建一个mydemo本地插件,常用于开发自己的插件时使用php think addon-dev -a mydemo -c create//刷新插件缓存,如果禁用启用了插件,部分文件需要刷新才会生效php think addon-dev -a mydemo -c refresh//卸载本地的example插件php think addon-dev -a mydemo -c uninstall//启用本地的example插件php think addon-dev -a mydemo -c enable//禁用本地的example插件php think addon-dev -a mydemo -c disable//将本地的example插件打包成zip文件php think addon-dev -a mydemo -c package//监视代码更新,同步到可访问的目录applicationphp think addon-dev -a mydemo -c watch

PS: 可以打卡一个新的终端命令窗口,执行php think addon-dev -a mydemo -c watch,来监视插件内的代码,如果有更新,立刻更新代码到application对应的目录,并更新缓存(只有文件更新的时候才执行)

全局排除检查文件和目录

修改.devignore文件

/uniapp//h5//wxapp/node_modules.gitingoreinfo.iniinstall.sqlREADME.md

开发实战

强迫症店铺系统插件开发,两张表,分类表,商品表,关系:1->n

插件名:mydemo

分类表

CREATE TABLE `fa_mydemo_category` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`name` VARCHAR(128) NOT NULL COMMENT '名称' COLLATE 'utf8mb4_general_ci',PRIMARY KEY (`id`) USING BTREE)COLLATE='utf8mb4_general_ci'ENGINE=InnoDB;

商品表

CREATE TABLE `fa_mydemo_product` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`category_id` INT(10) UNSIGNED NOT NULL COMMENT '分类Id',`name` VARCHAR(128) NOT NULL COMMENT '名称' COLLATE 'utf8mb4_general_ci',PRIMARY KEY (`id`) USING BTREE,INDEX `fk_mydemo_category_product_idx` (`category_id`) USING BTREE)COLLATE='utf8mb4_general_ci'ENGINE=InnoDB;

生成插件mydemo

php think addon-dev -a mydemo -c create

监听插件变化

新打开一个命令终端,执行如下命令

php think addon-dev -a mydemo -c watch

懒人模式

1) 生成crud

生成分类管理

php think addon-crud -A mydemo -t mydemo_category -u 1

得到以下关键文件

  • addons/mydemo/application/admin/controller/mydemo/MydemoCategory.php
  • addons/mydemo/application/admin/model/mydemo/MydemoCategory.php
  • addons/mydemo/application/admin/validate/mydemo/MydemoCategory.php

路由地址:mydemo/mydemo_category/index

生成商品管理

php think addon-crud -A mydemo -t mydemo_product -r mydemo_category -k category_id -u 1

得到以下关键文件

  • addons/mydemo/application/admin/controller/mydemo/MydemoProduct.php
  • addons/mydemo/application/admin/model/mydemo/MydemoProduct.php
  • addons/mydemo/application/admin/validate/mydemo/MydemoProduct.php

路由地址:mydemo/mydemo_product/index

2) 分类下拉框代码效果

data-source="mydemo/mydemo_category/index"

<input id="c-category_id" data-rule="required" min="0" data-source="mydemo/mydemo_category/index" class="fORM-control selectpage" name="row[category_id]" type="text" value="">

强迫症模式

最求完美,代码要简洁,包括控制器的名称也必须简洁

1) 生成crud

生成分类管理

php think addon-crud -A mydemo -t mydemo_category -c category -u 1

得到以下关键文件

  • addons/mydemo/application/admin/controller/mydemo/Category.php
  • addons/mydemo/application/admin/model/mydemo/MydemoCategory.php
  • addons/mydemo/application/admin/validate/mydemo/MydemoCategory.php

路由地址:mydemo/category/index

生成商品管理

php think addon-crud -A mydemo -t mydemo_product -c product -r mydemo_category -k category_id -w mydemo/category -u 1

得到以下关键文件

  • addons/mydemo/application/admin/controller/mydemo/Product.php
  • addons/mydemo/application/admin/model/mydemo/MydemoProduct.php
  • addons/mydemo/application/admin/validate/mydemo/MydemoProduct.php

路由地址:mydemo/product/index

2) 分类下拉框代码效果

data-source="mydemo/category/index"

<input id="c-category_id" data-rule="required" min="0" data-source="mydemo/category/index" class="form-control selectpage" name="row[category_id]" type="text" value="">

UI模式

最佳的开发的开发体验就应该使用ui模式+命令执行代码监测及时更新代码极速开发。

命令行帮助开发者监测代码更新,如果有更新就同步代码到可执行的目录。

ui模式完成代码生成。ui模式的好处就是代码生成时安全的。只有开发者确认文件某个具体的文件,才会生成代码。

ui模式还可以对比将要生成的代码和本地代码的差异。对比差异、复制对应的代码到源文件。

ui模式可以在线预览代码,确认无误在选择生成代码,覆盖旧文件。

ui模式绝大部分参数都是跟官方的描述一致。和本插件的命令行参数完全一致。

ui模式可以在代码生成菜单重新导出为可用的代码,不用人工补全菜单代码。

UI模式最佳实践

只是为了演示,简单设计两张表,完成旅游路线的起点和终点的管理

建议:name字段的注释不要简单的写名称,写成景点名称更好,特别是自动生成lang文件的时候。

插件名:travel

路线景点表

CREATE TABLE `fa_travel_spot` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`name` VARCHAR(128) NOT NULL COMMENT '景点名称' COLLATE 'utf8mb4_general_ci',PRIMARY KEY (`id`) USING BTREE)COLLATE='utf8mb4_general_ci'ENGINE=InnoDB;

路线表

CREATE TABLE `fa_travel_line` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`name` VARCHAR(128) NOT NULL COMMENT '路线名称' COLLATE 'utf8mb4_general_ci',`start_spot_id` INT(10) UNSIGNED NOT NULL COMMENT '起点景点Id',`end_spot_id` INT(10) UNSIGNED NOT NULL COMMENT '终点景点Id',PRIMARY KEY (`id`) USING BTREE)COLLATE='utf8mb4_general_ci'ENGINE=InnoDB;

生成插件travel

php think addon-dev -a travel -c create

监听插件变化

新打开一个命令终端,执行如下命令

php think addon-dev -a travel -c watch

以上完成了命令行的任务,接下来就是UI的工作了

UI模式生成景点表单crud

打开ui界面

输入参数

模板名称插件名模型表模型控制器生成菜单删除模式
旅行景点traveltravel_spotSpot

点击确认保存,此时并没有生成代码也不会生成菜单。
重新打开编辑页面奇迹就出现了。在弹窗的底部就出现了将要生成的代码文件。

  • 点击文件预览代码
  • 点击勾选框,表示要生成指定的代码

随便修改一个文件后,再重新打开编辑页面在底部的该文件会出现对比标签和覆盖的操作。

UI模式生成路线表的crud

路线关联了景点两次,相当于关联了两个模型。多个模型的参数按照数序换行输入对应的参数。

输入参数

模板名称插件名模型表模型控制器生成菜单删除模式
旅行路线traveltravel_lineLine
关联表主表外键关联控制器
travel_spot
travel_spot
start_spot_id
end_spot_id
travel/spot
travel/spot

生成代码步骤同上。

新增【关联选项字段】参数

比如我们的fa_travel_spotname字段使用的是其他的名字,比如:code。生成旅游路线代码时,需要补上该配置。

关联表
code
code

UI模式导出菜单

点击ui页面上的导出菜单按钮即可。

来源地址:https://blog.csdn.net/weixin_37045384/article/details/128423513

--结束END--

本文标题: FastAdmin插件开发辅助增强插件

本文链接: https://www.lsjlt.com/news/387323.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • FastAdmin插件开发辅助增强插件
    本人开发的FastAdmin插件开发辅助增强插件 不改变官方的开发习惯,但更丝滑,尽最大的努力生成你想要的代码 非常重要 非常重要 非常重要 写在最前面是为了不要漏了,导致插件没有正常工作。 编写代码...
    99+
    2023-09-01
    php 数据库 安全
  • ChatGPT Python插件开发指南:增强聊天交互的能力
    ChatGPT Python插件开发指南:增强聊天交互的能力,需要具体代码示例引言:ChatGPT是一个强大的自然语言处理模型,已经在许多应用领域证明了它的价值。然而,有时候我们可能需要进一步定制化ChatGPT,以满足特定的聊天需求。Ch...
    99+
    2023-10-26
    ChatGPT Python插件 增强交互能力
  • WordPress插件开发教程1:开发第一个WordPress插件
    一、创建一个插件         第一步:在 wp-content \ plugins 目录新建一个目录,随便起个名字,比如:my-first-plugin。         第二步:进入 my-first-plugin 目录,新建一个PH...
    99+
    2023-09-10
    Wordpress WordPress插件开发教程 WordPress插件开发 WordPress插件教程 WordPress开发教程
  • 如何开发MyBatis插件
    本篇内容介绍了“如何开发MyBatis插件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.MyBatis...
    99+
    2024-04-02
  • 如何开发jQuery插件
    今天小编给大家分享一下如何开发jQuery插件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。jQuery是javascrip...
    99+
    2023-06-26
  • Springboot插件怎么开发
    本篇内容主要讲解“Springboot插件怎么开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot插件怎么开发”吧!一 背景项目新增监控系统,对各个系统进行监控接口调用情况,初...
    99+
    2023-07-06
  • Springboot插件如何开发
    本篇内容主要讲解“Springboot插件如何开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Springboot插件如何开发”吧!一 背景项目新增监控系统,对各个系统进行监控接口调用情况,初...
    99+
    2023-06-30
  • Fastadmin后台插件-在线命令管理-getshell
    文章目录 一、使用默认口令进入后台 二、安装插件 三、进行漏洞复现 摘抄 免责声明 一...
    99+
    2023-08-31
    php 安全 web安全
  • Flutter插件开发-(进阶篇)
    一、概述 Flutter也有自己的Dart Packages仓库。插件的开发和复用能够提高开发效率,降低工程的耦合度,像网络请求(http)、用户授权(permission_handler)等客户端开发常用的功能模块,我们只需要引入对应插件...
    99+
    2023-09-03
    android flutter android studio
  • Maven3.x 插件开发入门
      1、创建插件项目:(项目原型选择插件类型)    2、Artifact Id 以xxx-maven-plugin命名,如:gr-maven-plugin,下面Version的内容无所谓。    3、创建完毕之后的结构是这样:    4、...
    99+
    2023-01-31
    插件 入门
  • CMS插件开发 进阶教程:打造强大功能
    扩展插件功能:自定义工具的力量 CMS 插件的核心是扩展网站的功能,但您能做的不仅仅是添加基本功能。通过创建自定义工具,您可以提供独特的解决方案,满足用户特定的需求。例如,您可以构建以下工具: 内容过滤和排序器 定制化数据表格 交互式...
    99+
    2024-02-15
    CMS 插件开发 进阶教程 自定义工具 用户体验
  • Flutter插件开发-(基础篇)
          在开发flutter项目的时分通常会运用一些三方的的packages或许plugin,二者的区别:packages主要是包括的Dart代码块,而plugin则包括iOS和android的代码。 因此来说创立plugin和pack...
    99+
    2023-10-25
    flutter android vscode
  • CMS插件开发必备技能:成为一名合格的插件开发者
    CMS插件开发是一项重要的技能,可以帮助您扩展CMS的功能并创建定制的解决方案。要成为一名合格的插件开发者,您需要掌握以下技能: 1. 编程语言 编程语言是CMS插件开发的基础。您需要掌握至少一种编程语言,以便能够编写插件代码。常用的编...
    99+
    2024-02-05
    CMS 插件开发 编程语言 数据库 API
  • 发挥SEO插件的强大作用,助你提升CMS网站排名
    SEO插件提供研究工具,帮助你识别与网站内容相关的高搜索量。 使用优化标题、描述和内容,提高网站与搜索词的匹配度。 2. 内容优化 插件分析内容的可读性和质量,提供建议以提升可读性、提高用户参与度。 提供拼写和语法检查功能,确保内容...
    99+
    2024-04-02
  • 帮助Web开发的10款Firefox插件分别是哪些
    今天就跟大家聊聊有关帮助Web开发的10款Firefox插件分别是哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. FireBug在众多插件中...
    99+
    2024-04-02
  • CMS插件开发的资源与工具:助力开发者高效创作
    资源:帮助开发者学习和了解CMS插件开发 CMS开发文档: 大多数CMS平台都会提供详细的开发文档,其中包含了插件开发的相关指南和示例。 开发者社区: 许多CMS平台都有活跃的开发者社区,开发者可以在这里与其他开发人员分享经验和解决问题...
    99+
    2024-02-05
    CMS 插件 代码
  • 强烈推荐IDEA提高开发效率的必备插件
    目录前言一、Lombok插件1.1 安装1.2使用1.2.1 常用注解@Data1.2.2 针对方法单独使用1.2.3 有参构造和无参构造二、Vuesion Theme2.1 安装2...
    99+
    2024-04-02
  • 如何快速开发Firefox插件
    这期内容当中小编将会给大家带来有关如何快速开发新浪微博的Firefox插件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Firefox的插件机制对于一个Firefox插件...
    99+
    2024-04-02
  • 为Eclipse安装Python开发插件
    最近想用Python开发大一点东西,IDLE就显得不太够用了,比较了一下众多的Python编辑器,发现Eric和Eclipse+PyDev是功能最为强大的两个。由于对Eclipse比较熟悉,所以自然而然就选择了它作为开发环境。 在网上找了很...
    99+
    2023-01-31
    插件 Eclipse Python
  • 然后解析jQuery插件开发
    然后解析jQuery插件开发,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQue...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作