经过1年的大版本调整,全新的V3.0 RC1版本已经发布,并且全新设计更新了官网。
这次更新经历了较漫长的过程,本来是打算发布V2.1版本的,但是在各位热心网友的提议下,直接更新到了3.0版本,并且在系统上相比有了较华丽的升级。
下面介绍下由2.0升级到3.0后带来的变化和优点:相比V2.0中增加了modules和drivers,在核心类库中把类似 Database
,Session
,Session
等大型类库都单独分离模块(即modules),并且目前已把 Database
的各个驱动分离到drivers里。这样做迎合了当前流行的模块化开发的趋势,模块化开发的好处就是可以最大限度的自定义。
更加注重系统安全:在V2的基础上,V3对系统内部调用加强了安全校验规则,并使用动态密码保证系统能够更加安全。增加了对 CSRF
攻击的防范。
另外,MyQEE也开始支持 Compress 包管理器安装和更新了,目前此功能还处于测试阶段,待正式版本发布后,你的程序可以直接用过包管理器进行升级了,再也不用担心自己的系统落后了。
PS: 由于后台类库还在升级中,所以RC1版本里不含目前官网的新版后台演示
以下是V3升级的一些列表
- 核心部分改动及优化
- 类库、模块、ORM、控制器等文件名命名实现全统一,全部改为小写方式
- libraries/myqee/core类库改为根目录core/目录,并取消
$config['libraries']['core']
的配置项,并增加DIR_CORE
常量,此常量目录为core目录 libraries/bootstrap.php
移动到core目录中,并修改index.php中include文件路径- 完善
Bootstrap::$base_url
的获取 - 优化Session的读取,对生成的SessionID增加校验功能,防止伪造
- 增加500错误数据收集的收集功能,可以关闭(配置中
$config['error500']['close'] = true;
即可) - 增加上传类库,并支持多驱动协议存放
Core::set_project($project)
改为Core::change_project($project)
- Session类库优化
- ORM Finder中
get_by_id()
和get_by_ids()
方法增加第二个参数$use_master指定是否在主库上查询,默认false - 特殊控制器目录修改,解决部分主机不支持特殊字符目录的问题
- 后台控制器
controllers/[admin]/
目录改为controllers-admin/
- 命令行控制器
controllers/[shell]/
目录改为controllers-shell/
- 系统控制器
controllers/[system]/
目录改为controllers-system/
- 后台控制器
- 控制器相关优化
- 类命名优化,取消文件夹下双下划线命名方式,统一改成和class,model等相同的命名规则
- 修复控制器参数大小BUG
- 增加RESTFul的支持,RESTFul的控制器存放在
controllers-rest/
目录,可使用IS_REST_MODE
进行判断 - 避免系统基础控制器可直接被访问到
- 重写
Controller_Shell::getopt()
获取参数的代码,实现等同于系统的getopt()
方法的功能
- 数据库相关优化:
- 增加慢查询日志功能,可在config.php中设置慢查询
$config['slow_query_mtime']
参数 - 各驱动优化,避免在连接数据库失败后将数据库用户名、密码等信息暴露到错误堆叠里
- MongoDB优化主从模式查询,改Group查询为aggregate查询(MongoDB必需2.2版本以上,MongoDB扩展必需1.3+版本)
- 查询where支持!=和<>,例如:
$db->where('id!=', 3)
或$db->where('id<>', 3);
表示查询条件为id不等于3 - MySQL驱动支持distinct某个字段,例如
$db->distinct('test_field')
- Database增加
select_max()
,select_min()
,select_avg()
,select_sum()
等高级查询函数 - 增加
set_builder($builder)
和recovery_last_builder()
方法,适用与在多条查询中具有类似条件的情况 - reset()方法支持重置单个信息,比如
$db->reset('select');
可单独重置select的参数 - 程序里支持
$db = new Database('mysqli://root:123456@127.0.0.1/myqee/')
这样的快速连接写法,省去数据库配置的麻烦
- 增加慢查询日志功能,可在config.php中设置慢查询
- 代码开发相关优化
- 将shell目录改名bin目录,增加
merge-assets
、view-error500-log
等开发及部署工具 - 优化Debug功能,支持Chrome浏览器下FirePHP功能
- statics 控制器改为 assets/devmode/ 控制器,支持开发版本实时优化处理输出css(包括less)和js
- 将shell目录改名bin目录,增加
- Administration类库
- 后台类库使用全新界面,视图使用bootstrap界面框架 详见 http://getbootstrap.com/
- CSS采用less方式定义,方便修改
- JS改为模块化,更方便二次开发
- 支持手机版本
- 其它
- 语言包完善
- 各种细节优化
支持!