独立开发者系列(10)——fastadmin后台框架的认识

软件开发项目涉及到的东西非常多,作为独立开发者,普遍性的面对的是中小项目。而其中接单的情况下,以WEB方向的居多。其中主要有以下这么些类的:搭建官网cms  就是常见的资讯发布平台,发布一些企业新闻/活动宣传,纯粹是发到自己的网站上。随着移动端的到来,当前的cms都要兼容在H5手机端访问,并出现对应效果。这种订单要求很低,基本都是找一个cms套模板。而CMS背后代表一大批类似这种简单的需求。

  比如:之前提到的小型图书馆管理系统,公司里面简单的客户/员工管理系统,简单的广告投放记录系统,小程序里面的每日签到打卡活动,简单的宣发活动,在不考虑性能的前提下,基本都归属小型系统,这种项目的特点用一套万能的RBAC框架的admin管理后台,输出API,然后接入到第三方/前端/APP端显示,就可以快速完成。

      这里以fastadmin框架为示例演示基础项目的完成。去官网下载源码包,搭建好public网站。按照生成的后端php文件登录系统,就可以看到如下图:,安装太过简单,直接略过。主要是用该系统来实现我们自己需要完成的项目,各种小型的系统,类似书籍管理,内部任务管理,备忘录,小程序的后端开发..

  1. 搭建好之后,为了后续的开发方便,首先关闭后端验证码,因为是在本地开发,可能退出了登录,每次都需要验证码。跳到配置文件application/config.php 里面搜fastadmin 可以看到验证码部分的配置 login_captcha  默认是true 为了我们本地项目开发的快速,我们将其设置为false 这样就无需每次都要验证码。不过建议线上开启验证码,防止有人爆破后台。
  2. 打开调试模式 还是application/config.php 文件
     // 应用调试模式

'app_debug'              => Env::get('app.debug', true),

// 应用Trace

'app_trace'              => Env::get('app.trace', true),
将这俩个配置变成true  打开调试模式是开发时候的常规操作,也是所有项目接手或者修改必须打开的参数设置,这样代码写错,立刻可以看到完整的报错。没有报错的开发,会导致排查效率很慢。

  1. 安装在线一键CURD生成
      登录后台,找到插件管理。输入”在线命令”,可以找到该插件,点击安装。在线命令可以大幅度提升开发效率,在十年前开发的时候,还没有CURD一键生成的时候,我们开发后台是需要一个专门的程序员来开发,也就是一个人开发前端业务逻辑,一个人开发后台的管理。为什么会需要一个专门的人来开发后台,因为每次新建数据表,都需要复制页面,不断修改字段,而且还要根据字段做出各种效果,比如多选效果,开关效果,radio效果,当然还有各种按钮效果,包括更复杂的从其他表拉数据进行ajax请求,也要自己写后台请求的接口。这导致后台也是需要一个专门的程序员来进行开发的,后台人员根据开发业务的人员设计好的数据表,逐步开发后端功能。而后在慢慢的开发过程中,逐渐有人发现,其实后端的功能都差不多的,完全可以集成到模板里面,用一组命令进行生成。这就是一键CURD的核心主导思路。
  2. 一键CURD的使用
    可以直接使用命令行执行php think crud -t test 其中test是需要后台使用的数据表。但是我们一般不这么操作,安装了在线命令后,在debug = true的模式下,直接选择需要直接生成前端/后台control/model的,默认情况我们直接生成即可,生成后,再添加到菜单里面去

 
如果我们生成错误了,还是需要切换到命令行环境下执行,输入yes 才会删除(在线操作无法删除,需要切到命令行下删除)
php think crud --delete=1 --table=fg_test --controller=testxiong.php

  1. CURD的个性化操作明自定义控制器名:
     有时候我们设计了表名是A,但是我们并不希望控制器也是A,而且当我们设计的表数据结构非常复杂的时候,比如tb_gz_user_sign_count  这种数据表格式的时候,如果采用默认的生成方式会自动生成tb/gz/user/sign/count.php 但是很可能只有几张这样的数据表,我们为了方便管理 写成userSignCount.php控制器。默认是放在二级目录,这样非常方便的生成各种控制器。
  2. 怎么将生成的CURD放入菜单里面
    同样生成之后,点击一键菜单功能,会自动将生成的CURD变成一个个功能,放入到菜单里面。没有该功能,在传统的RBAC系统里面,我们需要手动将权限一个一个赋值给指定用户,除了超级管理员,配置其他账号的权限工作量非常大,特别是开发七八张数据表,光配置权限,可能就要一个上午。而现在这个一键生成之后,我们只要指派即可。
  3. 生成的前端页面进行修改
    一部分在admin/view对应的页面,主要是add/edit俩个页面,列表也index也有部分但是如果是改字段显示
    public/assets/js/backend找到控制器同名的js代码。可以更改列表,字段的样式显示。
  4. 字段的功能种类常用生成汇总 
    需要说明的是,fastadmin是根据数据库的字段自动映射生成CURD种类,也就是你可以通过数据表的设计,直接出现到后台的前端显示页面,这个功能很有用。因为调样式和加插件,配插件是后台开发程序员经常要花费大量时间操作的事情。
    最常用的:
     status  也就是状态码(一大部分的数据表都需要该字段,显示状态的)  设计字段的样板
    status    enum(‘0’,’1’,’2’)  状态值:0=禁用,1=正常,2=推荐
    实际效果图显示:

头像/封面/主图/背景/横幅  图上传(特点,一次只能上传一张,后面上传的会覆盖前面的上传)
image结尾的字段  varchar类型。在没有这种设计思路之前的普遍做法,找到一个图片上传的demo,将其对应代码复制到指定代码位置,然后替换成对应字段。后果如果是那种纯图的数据表,会发现密密麻麻都是图片重复代码,要不断去改。曾经不懂这个技巧,改其他框架30多个图片字段,写的异常复杂。而如果用框架的自动映射,设计表的时候就已经知道正常了。

活动图/滚动图/轮播图的上传(特点,一次上传一张,但是可以支持储存多张图)

Images结尾的字段,效果图

徒手写多图上传,无论用什么插件,都是比较费劲的,主要是要同时写好前后端,前端使用多图插件,拼接好图片之后,后端也要处理,而且在列表页面显示多图的缩略图的时候,要专门处理。但是该框架只要你对字段命名成images,自动完成了该过程。

富文本编辑器,普通的textarea 使用体验不是很好。需要将系统集成的富文本直接使用进去,这个也是一个挑战,在之前的系统里面,我们一般是找到一个富文本插件,然后集成到系统里面,再按照富文本的操作说明进行改动。
而在fastadmin里面 只要字段后缀命名为 content 自动关联富文本。如果没有装富文本插件,去下载一个免费插件即可。效果图

时间插件,主要是比赛日期/活动开始时间/结束时间之类的,之前的做法是找到时间插件,引入到后台JS代码里面,然后使用完成逻辑。而在fastadmin里面,直接将字段的结尾设置为time,会自动给你生成一个时间插件框框,需要date类型。这样与时间相关的插件问题,基本可以不考虑了。

性别/是否/对错  单之类的单选按钮,只需要再对应的字段后面增加个data 比如sexdata 然后设置enum类型 1,2 注释上下 性别:1=男,2=女 就可以出现如下效果(跟status类似,非常有用,再也不用每次对二元radio进行复制改代码字段操作)

  跨页面拉取数据表字段。一般比如商品的分类(商品页面需要拉取分类的字段比如是shopcate表)
shopcate_id 分类ID     int  将生成选择分类的下拉框,分类单选
这样就会读取分类的列表数据。绝大部分的电商场景会用到该功能,需要shopcate里面有id  name  pid 字段(类目表)
  如果没有该自动化功能,之前的操作是写个专门读取出数据的接口,给前端页面进行ajax调用,调用完成后,渲染进入到一个select 表里面,然后去勾选,复杂度非常高。而现在直接集成到系统里面。

小结:作为一个入门级的项目,fastadmin非常好用,可以应付绝大部分的小型场景,最少要掌握一套类似的admin后台框架,接单的时候,就能迅速反应出来。

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大梁来了

千山万水总是情,打赏一块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值