- 博客(88)
- 资源 (4)
- 收藏
- 关注
原创 Funboot 编码规范
PHP Funboot 编码规范概览PHP代码文件必须以 <?php ,纯 php 代码不用加 ?> 结束,如果使用闭合标签,任何由开发者,用户,git或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空白页。因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。类的命名必须遵循写开头的驼峰命名规范,如StudentModel, StudentController;类
2021-10-14 16:19:01
185
原创 Funboot附录:I18n国际化
I18n国际化翻译文件统一将所有的翻译都映射到common/messages目录下,应用下自定义的标签写到对应的应用文字中,如frontend应用自定义标签写到common/messages/frontend.php中,使用Yii::t(‘frontend’, ‘Your Label’);其中常量放到cons.php文件中,如STATUS_ACTIVE菜单权限翻译跟数据库中的字符有关,默认数据表中存储的是中文,所以以中文为原始语言翻译。修改common/config/main.php 'l
2021-10-14 16:18:31
185
原创 Funboot开发:Oauth2 服务
OAUTH 2.0OAUTH 2.0用于处理不同系统之间的鉴权方式,本系统支持给第三方系统授权并支持4种模式。授权成功后访问数据GET方式/api/oauth/default/profileHeader 参数参数名参数类型必填默认说明备注Authorizationstring是无Bearer + 空格 + access_token[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N5VM5to3-1634199415719
2021-10-14 16:17:34
178
原创 Funboot开发:API接口Restful
Api模块规划v1 app通用接口,支持相同接口不同版本v2 app通用接口,支持相同接口不同版本mini 微信小程序api目录xx 其他自定义模块接口自定义返回格式继承api/components/response/ResponseAbstractRESTFUL方法#MethodURL说明列表GET/api/students获取列表查看GET/api/students/1单个创建POST/api/students新建,www-fo
2021-10-14 16:16:36
137
原创 Funboot开发:WebSocket - 带历史消息的聊天室
WebSocket - 带历史消息的聊天室以一个带历史消息的简单聊天室演示如何结合Yii2和Workerman使用Websocket以及和数据库交互。主体代码参考Workerman 官方聊天室演示地址https://chat.funboot.net/启动Windows下双击console\modules\chat\chat.batLinux 下执行# php yii chat/server start -dWorkerman[yii] start in DAEMON mode-----
2021-10-14 16:11:33
625
原创 Funboot开发:定时任务
定时任务注意需要在Linux环境下运行,且让PHP的exec函数取消禁用,修改php.ini文件disable_functions = passthru,system,chroot,chgrp,chown,shell_exec,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_serverFunboot可以在后台管理定时任务,默认有一条数据库备份的定时任务每天凌晨三点执
2021-10-14 16:10:48
218
原创 Funboot开发:验收测试
验收测试系统做修改时,每次都要去全部测试可能影响到的地方太麻烦了,因此我们引入自动化测试检查我们的修改影响。PHP作为动态语言,搭配Yii2框架,整体上做单元测试和功能测试性价比比较低,而对前端做验收测试则是性价比比较高。配置测试修改frontend/tests/acceptance.suite.yml中的urlactor: AcceptanceTestermodules: enabled: - PhpBrowser: url: http://ww
2021-10-14 16:10:10
127
原创 Funboot开发:快速开发常用代码
快速开发常用代码目录列表中增加一个可编辑字段树状表格开发多选字段开发Echarts图表列表中增加一个可编辑字段增加一个新的可以编辑字段,在对应的Controller的 protected $editAjaxFields = [‘name’, ‘sort’];中增加想要编辑的字段,再参考下面的name字段修改字段。 [ 'attribute' => 'name', 'format' => '
2021-10-14 16:08:53
150
原创 Funboot开发:多语言 & 自动翻译
多语言 & 自动翻译Funboot将多语言数据存储在fb_base_lang表中,通过对每个需要加多语言的表进行编号,放在一个表中也有利于数据自动翻译。开启自动翻译默认会将源语言翻译成指定的多国语音,默认使用百度翻译,需要修改翻译方式覆盖autoTranslate函数即可。Model部分指定tableCode,必须整个项目唯一,建议与fb_base_permission中的ID前缀保持一致 static $tableCode = 5001; static $mapLangF
2021-10-14 16:08:01
205
原创 Funboot开发:系统消息
系统消息目录系统日志使用MongoDb存储日志简介系统消息分为公告、提醒、点对点私信、在线反馈,同时可以支持新用户注册时是否发送提醒给新用户。也可以自定义类型,根据需求。在线反馈在线反馈的内容会发送到店铺管理员的消息内容当中。自定义表单,可以参考在线反馈表单common\models\forms\base\FeedbackForm 注意修改字段和翻译,并重定义KEY_FAILEDfrontend/views/site/feedback.php 显示表单在控制器中添加如下代码,
2021-10-14 16:07:16
88
原创 Funboot开发:RBAC权限角色
RBAC权限角色目录菜单权限 & 数据权限 & 部门权限菜单权限角色用户角色菜单权限 & 数据权限 & 部门权限权限分为菜单权限、数据权限、部门权限,目前菜单权限通过角色控制,数据权限通过角色种类来控制,部门权限暂时没有整入。菜单权限:顶部和左侧可见的菜单栏目,分配有权限则显示数据权限:点击菜单栏目,只能看到指定店铺的所有数据部门权限:点击菜单栏目,只能看到指定店铺下部门的数据(开发中)菜单权限权限采用4级方式。第一级显示在顶部,为子系统
2021-10-13 11:13:00
157
原创 Funboot开发:系统组件
系统组件目录AuthSystem RBAC鉴权组件LogSystem 日志组件SettingSystem 配置组件DictSystem 数据字典组件CacheSystem 缓存组件MailSystem 邮件组件Store 组件Message 消息组件最佳实践:扩展组件功能或自定义组件Funboot的所有系统组件以XxxxSystem结尾,配置在common/config/main.php中。代码文件在common/components/base目录下为了方便开发查看在ide_h
2021-10-13 11:12:17
168
原创 Funboot开发:基类控制器BaseController
BaseController目录common\components\controller\BaseControllerbackend\controller\BaseControllerfrontend\controller\BaseControllerapi\controller\BaseController每个子系统在控制器和Yii原本的Controller中增加了一到两层类,目的是定义一些公共的变量和方法common\components\controllerBaseControl
2021-10-13 11:11:39
485
原创 Funboot开发:模型BaseModel & XxxBase
BaseModel & XxxBase目录BaseModelXxxBaseModel为了实现定义一些公共的字段和方法,在model中插入BaseModel这一层级为了实现多语言和字段修改可以再次gii生成代码,在model中插入了XxxBase这一层级。为了支持注释语言作为标签同时支持i18n用英语作为翻译,优化了生成的ModelBaseModel在Yii2生成的Model默认继承yii\db\ActiveRecord,Funboot在中间首先定义了common\m
2021-10-13 11:10:34
293
原创 Funboot二次开发:Saas开发说明
Saas目录系统支持自定义域名系统支持多个子系统,每个自定义域名可以系统支持平台形式系统支持多语言 & 多货币系统支持自定义域名在后台添加store时,需要指定域名host_name,支持|分隔多个域名,即aaa.funboot.com bbb.funboot.com可以是同一个域名系统支持多个子系统,每个可以自定义域名每个子系统都可以使用自定义的域名系统支持平台形式支持平台 https://www.funboot.com/store-mayicun 和 https://w
2021-10-13 11:09:25
634
原创 Funboot开发:约定优先配置
约定优先配置目录子系统关键字约定数据表sql设计约定RBAC权限控制约定配置约定Yii一大特性是约定优先配置,比如yii的路由site/index映射SiteController的actionIndex方法,如果要特殊指定也可以在配置文件中指定,不像其他框架每个router都指定,当团队成员不遵循规范时项目维护难度很大。Funboot框架也遵循约定优先配置原则,遵循以下约定可以极大的提升开发速度和降低维护成本。子系统关键字约定Funboot包含一些子系统,可以在这些子系统上直接进行二次
2021-10-13 11:08:20
186
原创 Funboot安装常见问题
常见问题目录linux下提示无访问权限安装或迁移出现 Specified key was too long; max key length is 767 bytes样式修改后访问没有变化Class ‘COM’ not foundcom() has been disabled for security reasons网站访问500错误,index.php无法require根目录其他文件Curl访问https://开头的地址错误linux下提示无访问权限linux下提示无访问权限l
2021-10-13 11:07:13
329
1
原创 Funboot系统安装
系统安装目录系统环境要求系统安装系统配置系统运行 & 体验常见问题系统环境要求详细请查看系统环境,快速运行环境推荐宝塔面板PHP >= 7.3Mysql建议5.7.xComposer系统安装1、Git克隆代码,或者直接下载Funboot代码Zip包git clone https://github.com/funson86/funboot funboot2、进入funboot目录,如果直接下载代码包改名字并从控制台进入目录cd funboot3、
2021-10-13 11:06:29
242
原创 Funboot安装系统环境
系统环境目录运行环境准备集成运行环境运行环境准备PHP >= 7.3PHP OpenSSL 扩展PHP fileinfo 拓展 素材管理模块需要用到Mysql建议5.7.xComposerRedis[选配]集成运行环境宝塔面板 : Window首选LNMP一键安装包 :LinuxMamp : Mac开发环境Xampp :LAMP环境,支持Window Linux Mac...
2021-10-13 11:05:02
117
原创 Funboot——基于Yii2的Saas快速开发平台
Funboot——基于Yii2的Saas快速开发平台Funboot是一个一站式Saas快速开发平台,基于Yii 2.0框架,提供代码生成器,提供通用组件帮助开发者聚焦业务,并提供多域名、多商户支持。问题反馈在使用中有任何问题,欢迎在QQ群众反馈 QQ群:798843502在线DemoFunboot开发平台 演示地址:https://www.funboot.net/backend/ test 123456FunPay个人收款系统 演示地址:https://funpay.funboot.net/
2021-10-13 11:02:55
787
原创 Yii2 WebSocket 基于Workerman,带聊天室样例
简单演示,正式项目请参考Funboot的chat聊天室如何和Yii2紧密结合问题反馈在使用中有疑问欢迎在QQ群众反馈 QQ群:798843502演示聊天室地址https://chat.funboot.net/安装composer执行composer require funson86/yii2-websocket或者在 composer.json 加入"funson86/yii2-websocket": "^1.0",也可以直接加入workerman的扩展composer req
2021-09-01 16:47:01
468
原创 Spring Boot入门样例-154-mybatis-atomikos整合Atomikos和Mybatis处理多数据库分布式事务
Spring Boot入门样例-154-mybatis-atomikos整合Atomikos和Mybatis处理多数据库分布式事务比如用户下单成功,必须扣减用户的余额,此时两个库的数据需要同时成功或者同时失败。本demo演示如何使用mybatis整合Atomikos进行多数据库分布式事务操作前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Ja...
2019-11-27 18:11:59
389
原创 Spring Boot入门样例-153-JPA-atomikos整合Atomikos处理多数据库分布式事务
Spring Boot入门样例-153-JPA-atomikos整合Atomikos处理多数据库分布式事务比如用户下单成功,必须扣减用户的余额,此时两个库的数据需要同时成功或者同时失败。本demo演示如何使用jpa hibernate整合Atomikos进行多数据库分布式事务操作前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Mav...
2019-11-27 18:10:48
342
原创 Spring Boot入门样例-152-mybatis-multi-source整合mybatis多数据源Multi Source
Spring Boot入门样例-152-mybatis-multi-source整合Jpa多数据源Multi Source当系统拆分成多个,如用户表和订单表在不同的数据库。本demo演示如何使用mybatis整合多数据源Multi Source前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot...
2019-11-27 18:08:55
417
原创 Spring Boot入门样例-151-JPA-multi-source整合Jpa多数据源Multi Source
Spring Boot入门样例-151-JPA-multi-source整合Jpa多数据源Multi Source当系统拆分成多个,如用户表和订单表在不同的数据库。本demo演示如何使用jpa hibernate整合Jpa多数据源Multi Source前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring...
2019-11-27 18:07:31
378
原创 Spring Boot入门样例-130-excetion统一全局异常处理
Spring Boot入门样例-130-excetion统一全局异常处理程序运行期间可能会有各种错误,每个地方加try catch比较麻烦。本demo演示如何在一个地方统一处理异常,减少开发代码。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和插件Sp...
2019-11-19 16:03:27
183
原创 Spring Boot入门样例-801-activiti-diagram整合activiti工作流在线设计工作流程
Spring Boot入门样例-801-activiti-diagram整合activiti工作流在线设计工作流程activiti工作流可以通过网页设计,本demo演示整合activiti实现工作流在线设计工作流程。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea ...
2019-11-15 17:10:05
1314
原创 Spring Boot入门样例-800-activiti整合activiti工作流业务流程管理
Spring Boot入门样例-800-activiti整合activiti工作流业务流程管理日常员工申请请假,有些公司需要经理和老板审批,有些公司需要经理/总监/HR/总经理审批,Activiti将这样业务流程变成可设计,从而无需开发千变万化的流程。本demo演示整合activiti实现工作流业务流程管理。前言本Spring Boot入门样例准备工作参考:Spring Boot入门...
2019-11-15 17:07:51
669
原创 Spring Boot入门样例-380-hadoop整合hadoop大数据系统
Spring Boot入门样例-380-hadoop整合hadoop大数据系统hadoop一个大数据开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。本demo演示如何演示如何上传文件到hadoop中,大数据的map reduce样例请参考hadoop-demo。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Ja...
2019-11-13 14:31:34
1179
原创 Spring Boot入门样例-100-session使用Session识别用户
Spring Boot入门样例-100-session使用Session识别用户用户访问商城时也可以将商品添加到购物车,并且跳转到其他页面时购物车的信息依然存在。本demo演示如何演示用户未登录情况下使用Session保存用户添加购物车。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样...
2019-11-13 14:29:01
849
原创 Spring Boot入门样例-330-memcache整合memcache缓存数据
Spring Boot入门样例-330-memcache整合memcache缓存数据memcache是一款高性能内存Key Value键值对的Nosql数据库。本demo演示如何演示如何简单缓存和获取数据。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和...
2019-11-12 12:02:39
487
原创 Spring Boot入门样例-320-elasticsearch整合elasticsearch数据库
Spring Boot入门样例-320-elasticsearch整合elasticsearch数据库elasticsearch是一款开源数据搜索和分析引擎。本demo演示如何演示如何整合elasticsearch存取数据。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-i...
2019-11-12 12:01:43
594
原创 Spring Boot入门样例-170-i18n国际化多语言切换
Spring Boot入门样例-170-i18n国际化多语言切换当网站有多个国家用户访问时,如何让他们切换自己熟悉的语言。本demo演示在Spring Boot中国际化。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和插件Spring Boot入门样例...
2019-11-12 09:53:35
780
原创 Spring Boot入门样例-161-quartz整合quartz定时任务
Spring Boot入门样例-161-quartz整合quartz定时任务使用官方提供的quartz增强定时任务功能,可以把定时任务保存在数据库中,通过网页进行访问。本demo演示如何通过字符串和网页来管理定时任务。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea...
2019-11-08 17:19:58
422
原创 Spring Boot入门样例-160-task定时任务
Spring Boot入门样例-160-task定时任务比如游戏一般在凌晨3点给用户结算当天的签到,再签到就算第二天的任务,需要使用定时任务。本demo演示如何在程序中实现定时任务。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和插件Spring Bo...
2019-11-08 17:18:49
238
原创 Spring Boot入门样例-140-async异步执行async
Spring Boot入门样例-140-async异步执行async比如用户注册之后,要给用户发邮件,万一邮件服务坏了,用户可能要等半天,我们可以使用异步方法先给用户返回,其他线程需要执行发邮件的动作。本demo演示如何使用async线程池使用其他线程去执行非主线任务。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配...
2019-11-07 17:52:37
595
原创 Spring Boot入门样例-522-uploader整合七牛云和阿里云OSS上传图片
Spring Boot入门样例-521-uploader整合七牛云和阿里云OSS上传图片如果项目使用多个云存储,我们可以在配置文件中配置多个。本demo演示使用工厂模式无缝切换。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和插件Spring Boot...
2019-11-01 14:39:12
492
原创 Spring Boot入门样例-521-upload-aliyun-oss整合阿里云OSS上传图片
Spring Boot入门样例-521-upload-aliyun-oss整合阿里云OSS上传图片图片通过阿里云等云存储系统,可以让用户更快的显示图片。本demo演示如何演示如何将图片上传到阿里云OSS。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和插...
2019-11-01 14:38:14
674
1
原创 Spring Boot入门样例-520-upload-qiniu整合七牛云上传图片
Spring Boot入门样例-520-upload-qiniu整合七牛云上传图片图片通过七牛云等云存储系统,可以让用户更快的显示图片。本demo演示如何演示如何将图片上传到七牛云。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例-003-idea 安装配置和插件Spring Bo...
2019-11-01 14:36:42
353
原创 Spring Boot入门样例-310-mongodb整合mongodb数据库
Spring Boot入门样例-310-mongodb整合mongodb数据库Mongodb是一款高性能内存Key Value键值对的Nosql数据库。本demo演示如何演示如何使用@CachePut 和 @Cacheable缓存数据。前言本Spring Boot入门样例准备工作参考:Spring Boot入门样例-001-Java和Maven安装配置Spring Boot入门样例...
2019-11-01 14:35:42
170
eharts world.js包含以中国为中心的js和json
2020-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人