Download the PHP package tiderjian/qscmf without Composer
On this page you can find all versions of the php package tiderjian/qscmf. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package qscmf
qscmf
介绍
快速搭建信息管理类系统的框架。基于tp3.2开发,在其基础上添加了许多功能特性。tp3.2已经停止更新,该框架源码也对核心源码做了部分改动。
特性
- 支持composer依赖管理
- 支持phpunit及laravel dusk自动化测试
- 集成laravel数据库管理工具及依赖注入容器
- 支持ListBuilder、FormBuilder后台管理界面模块化开发
- 插件系统
- 简单易用,可自定义的配置管理
- 消息队列系统
- 集成Elasticsearch、可自定义索引重建自制,实现数据库记录与搜索引擎索引同步变动
截图

安装
第一种安装方法
代码拉取完成后,执行composer安装
第二种安装方法,composer create project
完成第一种或者第二种安装后
- 复制.env.example并重命名为.env,配置数据库参数
- 执行migrate数据库迁移命令。
将web服务器搭起来后,后台登录地址 协议://域名:端口/admin, 账号:admin 密码:Qs123!@#
维护模式
在.env将 APP_MAINTENANCE 设成true,系统进入维护状态,所有请求都只会提示系统维护中。如需要在维护模式下执行升级脚本,可传递"maintenance"给第三个参数
Elasticsearch
框架为集成Elasticsearch提供了方便的方法, 假设使用者已经具备elasticsearch使用的相关知识。
-
添加 "elasticsearch/elasticsearch": "~6.0" 到composer.json文件,执行composer update 命令安装扩展包。
-
安装elasticsearch, 具体安装方法自行查找,推荐使用laradock作为开发环境,直接集成了elasticsearch的docker安装环境。
-
安装ik插件,安装查找elasticsearch官方文档。
-
在.env下添加 ELASTICSEARCH_HOSTS值,设置为elasticsearch的启动ip和端口,如laradock的默认设置为10.0.75.1:9200,需要配置一组地址,可用“,”隔开。
-
设置需要使用elastic的model和字段
以ChapterModel添加title和summary到全文索引为例
-
初始化全文索引
打开Home/Controller/ElasticController.class.php文件, 修改index方法里的$params变量,根据你的需要来设置
-
执行索引初始化,程序会自动检索数据库全部数据表,为需要添加索引的表和字段进行索引添加操作。
-
可通过在config文件设置 "ELASTIC_ALLOW_EXCEPTION" 来禁止抛出异常,即使搜索引擎关闭,也不会影响原来的业务操作。
- 更新操作的索引重建仅会在索引字段发生变化时才会触发。
Controller
Model
数据库迁移
扩展了laravel的迁移功能, 可在执行迁移前后插入一些操作。
运用场景:
迁移文件是为了方便我们对数据库结构进行变更管理。那么是所有的数据库变更都会放到迁移文件处理吗?当然不是,像一些跟业务逻辑有关的数据处理就不应该放到迁移文件,否则这部分代码跟 业务数据捆绑,很容易导致执行迁移时出错。而只有那些跟业务数据无关,用于构造系统数据存储结构的变更操作才应该放到迁移中。但一个业务系统维护久了,难免必须处理一些数据后才能正常 执行数据库结构变更,例如唯一索引的创建往往就需要我们清理掉一些重复的业务数据。这时就有了不能放在迁移里的业务数据维护脚本的管理需求。
依托上面的场景,就有了在迁移文件中加入了前后置的操作点的构思。默认情况下,只要设置了前后置操作点,执行迁移时就会自动执行一遍,回滚类同。
那么如果只是想执行迁移而不执行前后置操作怎么办呢(例如执行自动测试脚本前,我们会自动构建系统的数据库)。只需在命令后面加入 --no-cmd即可
下面是支持加入--no-cmd操作的命令
-
CmmProcess 该类是为了方便在迁移中调用tp的脚本
用法:
-
ConfigGenerator 迁移中处理系统配置的工具类
addGroup($name) //添加配置分组
deleteGroup($name) //删除配置分组
updateGroup($config_name, $group_name) //将配置转移到指定分组
以下为新增配置项的操作函数
$name 配置名
$title 配置标题
$value 配置值
$remark 配置说明
$group 配置分组
$sort 排序
addNum($name, $title, $value, $remark = '', $group = 1, $sort = 0) //新增数字类型配置值
addText($name, $title, $value, $remark = '', $group = 1, $sort = 0) //新增字符类型配置值
addArray($name, $title, $value, $remark = '', $group = 1, $sort = 0) //新增数组类型配置值
addPicture($name, $title, $value, $remark = '', $group = 1, $sort = 0) //新增图片类型配置值
addUeditor($name, $title, $value, $remark = '', $group = 1, $sort = 0) //新增富文本类型配置值
addSelect($name, $title, $value, $options, $remark = '', $group = 1, $sort = 0) //新增下拉选择配置值 $options 是下拉配置数组
add($name, $type, $title, $group, $extra, $remark, $value, $sort) //新增配置方法,未预设的第三方组件可使用该函数
delete($name) //删除配置
后台JS
ListBuilder
FormBuilder
CompareBuilder
Builder
Cache
upload Api
前台js错误收集
用法
在前端head中引入log.js后调用frontLog方法
权限功能
微信登录
为解决第三方平台网站应用的PC扫码后openid不可操作问题,统一对PC端微信扫码以及微信端登录进行封装。
-
从微信公众平台中获取公众号的app_id和app_secret,并进行相关配置,放入.env文件
-
PC扫码页面,在需要显示二维码的地方加入iframe
PS:
- 构造iframe的src时,可通过goto_url参数来指定PC端扫码后跳转的地址,默认为首页
- 构造iframe的src时,可通过mobile_goto_url参数来指定微信端扫码后跳转的地址,默认为首页
- 微信端获取登录信息
-
运行/扫码后可用获取微信登录信息
- 若'wx_info'的session值已设置,可通过设置config.php中的'WX_INFO_SESSION_KEY'来改变
场景模拟
一、 PC端实现扫码登录/注册
-
扫码页面(扫码后需要跳转到'/home/index/wxLogin')
- 登录/注册业务处理(对应上一步的"/home/index/wxLogin")
二、 微信端实现授权登录/注册
-
授权页面 (授权后需要跳转到'/home/index/wxLogin')
- 登录/注册业务处理(对应上一步的"/home/index/wxLogin")
全局函数
js组件
selectAddr
代码示例
常量
DOMAIN 域名,可通过env去改写,默认采用$_SERVER["HTTP_HOST"]
ROOT 指定子目录,默认为空, 可通过env改写,如子路径 ROOT=/move
SITE_URL 包含子目录的网站根地址
HTTP_PROTOCOL 返回http或者https协议字符串, 可通过env指定
REQUEST_URI 获取方向代理前的REQUEST_URI值
扩展
消息队列
测试
传送门
压缩前端js代码
压缩办法很多,这里提供一种配置简单的方式,传送门
HEIC格式图片转JPG格式
-
使用
- 复制数据迁移文件2022_07_18_014941_alter_file_pic_add_mime_type.php,qs_file_pic添加字段 mime_type
-
扩展包需自行注册并实现heic_to_jpg行为
-
定义行为
- 注册行为
-
TRACE_ERROR
env增加了TRACE_ERROR配置,如果希望在debug关闭的模式下能收集到错误的报错位置,可以设置为true。这样就无需开启debug模式,也能收集到错误的报错位置。减少日志负担。
后台使用react构建页面
静态资源配置CDN
传送门
文档
由于工作量大,文档会逐步补全。
lincense
All versions of qscmf with dependencies
funkjedi/composer-include-files Version ^1.0
quansitech/antd-admin Version ^1.0
quansitech/qscmf-buttontype-modal Version ^4.0
quansitech/qscmf-formitem-ueditor Version ^3.0.0
quansitech/qscmf-utils Version ^1.5