V3全新SmartAdmin界面后台开放预览版下载

经过漫长的制作,全新的SmartAdmin界面的后台第一版预览版已经上线。

预览版演示地址:
http://myqeeadmin.sinaapp.com/

帐号:demo, 密码:123456

本后台是在SmartAdmin的界面基础上修改而来,使用了最新的 AngularJS 作为主框架,使用 requireJS 作为模块加载功能,CSS全部采用SCSS编写。

下载地址:
http://myqee-upload.stor.sinaapp.com/myqee/myqee-admin-preview.zip

【预览】

【使用说明】
首先将压缩包里的 admin.sql 导入到数据库中。

数据库链接配置,修改 team-library/config.php$config['database']['default'] 部分

站点配置,请配置在根目录下,比如 http://localhost/

【实时动态支持】
修改 php.ini 在最后加入 myqee.debug = On 保存,重启apache或nginx,这样就开启了MyQEE程序的debug功能
这样,程序静态资源都会请求 /assets-dev/*** 的地址,这个地址是通过PHP执行实时输出的,比如会把scss文件编译成css输出,这样就不用每次修改一个文件就要重新生成了
(这个也可以不加,不加的话,静态资源将使用 wwwroot/assets/p-default/~admin/ 中文件)

wwwroot/assets/p-default/~admin/ 中的文件都是进过编译输出的,【源文件】在 libraries/myqee/administration/assets/ 中,它编译会对应输出到 wwwroot/assets/p-default/~admin/ 目录中

【如何自行编译】
执行 bin/merge-assets 脚本,window下执行 bin/merge-assets.bat
比如 bin/merge-assets default –admin 即可
注意,需要 php, sass 支持

Apache配置例子(需apache开启rewrite模块):

<Virtualhost *:80>
    ServerName test.myqee.com
    DocumentRoot "~/Sites/myqee/"

    # not need edit
    DirectoryIndex index.html index.php
    RewriteEngine On
    RewriteRule .*/\..* - [F,L]
    RewriteCond %{DOCUMENT_ROOT}wwwroot%{REQUEST_FILENAME} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}wwwroot%{REQUEST_FILENAME} -d
    RewriteRule ^/(.*)$ /wwwroot/$1 [PT,L]
    RewriteRule ^/.* /index.php [PT,L]
</Virtualhost>

MyQEE V3 RC2 版本发布

本次更新在3.0RC1的基础上做了一些完善,修复了一些Bug:

  • 修复了已知的大量Bug
  • 完善文档生成脚本
  • 完善模块化的拆分
  • 数据库增加对 group_concat 的支持,MongoDB数据库驱动支持在group查询中使用distinct查询,修复MongoDB驱动力中查询slave在新的版本里可能导致连接失败的问题
  • 增加 BigInt 类库
  • 日期类库完善
  • HttpClient 增加upload方法,可实现上传文件功能
  • 完善邮件类库,修复 Email 中上传附件bug,支持收件人姓名+邮件的格式,完善密件抄送的功能
  • Session 类库优化
  • Swift Storage 驱动完善,token验证支持v1和v2版本,优化参数传送方式,支持url方式的配置

HttpClient类库增加upload方法

HttpClient 类库将增加 upload 方法,目前可在3.1分支中获取,将同3.0正式版一起发布。

分支地址 https://github.com/breath-co2/myqee/tree/v3/3.1

可实现上传文件功能,使用方法:

HttpClient::factory()->upload('http://localhost/up.php', '/tmp/test.jpg');

其中 http://localhost/up.php 为接收上传文件的URL,/tmp/test.jpg 为待上次的文件路径

另外,upload 方法还支持同时post一些数据,比如:

HttpClient::factory()->upload('http://localhost/up.php', '/tmp/test.jpg', 'upload', array('a'=>1, 'b'=>2));

等同于

HttpClient::factory()
->add_file('/tmp/test.jpg', 'upload')
->post('http://localhost/up.php', array('a'=>1, 'b'=>2));

走在云存储前沿,今日V3.1开发版本完善Swift Storage云存储接口,支持V2.0的Token接口

Swift Storage 是 openstack 开发的一套非常优秀的云存储方案,地址 http://www.openstack.org/software/openstack-storage/

通过它,你可以部署一个属于自己的云存储方案,它是基于key-value储存对象的。比如新浪SAE的云存储就是使用这个搭建的,具有非常稳定可靠的使用表现。

MyQEE 提供的 Storage 可以支持数据库驱动、文件驱动、Redis驱动以及Swift驱动,目前几乎还没有可以支持Swift协议的框架,迈启PHP框架通过驱动的方式扩展支持Swift协议,走在了云存储的前沿。

MyQEE紧跟Swift的脚本,继OpenStack提供相关的token V2.0接口后,MyQEE对Swift的驱动进行更新,目前已支持V2.0的Token接口。

Storage的使用方法:

$config = array
(
    'driver'        => 'Swift',
    'driver_config' => 'https://username:password@localhost:8080/v2.0?region=test&tenant_name=default&warehouses=mytest&prefix=test',
);
$storage = new Storage($config);

// 写入
$storage->set('test/123', 'hello');

// 读取
$storage->get('test/123');

以上代码也可以写成:

$config = array
(
    'driver' => 'Swift',
    'driver_config' => array
    (
        'host'              => 'localhost',     // 服务器IP或域名
        'user'              => 'username',      // 用户名
        'pass'              => 'password',      // 密码(key)
        'warehouses'        => 'mytest',        // 储存仓库,类似数据库的库,可不设置,默认为 default
        // 以下是token接口为v2.0的时候必须
        'tenant_name'       => 'default',       // Tenant 名称
        'region'            => 'test',          // Region
        // 以下为可选参数
        'https'             => true,            // true || false , 默认 false
        'token_api_version' => 'v2.0',          // 版本,不设置则默认 v2.0
        'port'              => 8080,            // 端口,默认http 为 80,https 为 443
        'prefix'            => 'test',          // key的前缀,默认为空
    ),
);
$storage = new Storage($config);

// 写入
$storage->set('test/123', 'hello');

// 读取
$storage->get('test/123');

MyQEE 全新首页上线, V3.0 RC1版本发布

经过1年的大版本调整,全新的V3.0 RC1版本已经发布,并且全新设计更新了官网。

这次更新经历了较漫长的过程,本来是打算发布V2.1版本的,但是在各位热心网友的提议下,直接更新到了3.0版本,并且在系统上相比有了较华丽的升级。

下面介绍下由2.0升级到3.0后带来的变化和优点:相比V2.0中增加了modules和drivers,在核心类库中把类似 DatabaseSessionSession 等大型类库都单独分离模块(即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/')这样的快速连接写法,省去数据库配置的麻烦
  • 代码开发相关优化
    • 将shell目录改名bin目录,增加 merge-assetsview-error500-log 等开发及部署工具
    • 优化Debug功能,支持Chrome浏览器下FirePHP功能
    • statics 控制器改为 assets/devmode/ 控制器,支持开发版本实时优化处理输出css(包括less)和js
  • Administration类库
    • 后台类库使用全新界面,视图使用bootstrap界面框架 详见 http://getbootstrap.com/
    • CSS采用less方式定义,方便修改
    • JS改为模块化,更方便二次开发
    • 支持手机版本
  • 其它
    • 语言包完善
    • 各种细节优化

MyQEE V2.0.1 正式版发布

修复2.0中发现的已知bug,比如:
HttpClient中错别字导致执行失败
文件缓存保存数据错误,文件处理类完善
完善了MySQL类库对编码的转换处理
完善了MongoDB的查询功能,完善了debug的显示
优化了Bootstrap中对debug的处理
完善了内部调用

MyQEE V2 正式版发布

经过半年多的修正,目前V2.0版本已经相当稳定,功能也日趋成熟,感谢这期间一直支持我的朋友们。

2.0主要修复了RC3中已知BUG,并且增加了更丰富的接口:包括对MongoDB的支持,缓存驱动除支持 File,Memcache 外还增加了 Apc, Database, Redis, SQLite, WinCache 的支持

对集群环境做了很多优化,增加了内部通讯机制,可在集群环境下对缓存文件进行处理。对数据库的操作也做了进一步优化。

增加了内部通讯模式,可以有效处理多服务器集群环境下对文件缓存的处理。

change log
———-
修复RC3中已知BUG
修复数据库类库连接、关闭连接等功能
将Request修改为HttpIO常量,并且将部分参数进行调整,具体为:
Request::$is_ajax => HttpIO::IS_AJAX
Request::$client_ip => HttpIO::IP
Request::$method => HttpIO::METHOD
Request::$user_agent => HttpIO::USER_AGENT
Request::$protocol => HttpIO::PROTOCOL
Request::$referrer => HttpIO::REFERRER
将HttpGet重命名为HttpClient,并完善HttpClient的Fscok驱动,移除Fscok对Snoopy的依赖
增加HttpCall系统Http请求类库
Core::import_library()修改,例如:Core::import_library(‘com.myqee.test’); 将加载myqee的test类库
ORM的原有Http模式Finder更换为REST(仍为BETA版本)
数据库驱动增加MongoDB,SQLite
缓存驱动增加Apc,WinCache,SQLite,Redis,原有的Database驱动升级完善
增加Ftp类库
增加Email类库
Session类库修复destroy()销毁数据时Member数据无法销毁的bug
Session默认驱动中config支持save_handler和save_path关键字设置
完善系统内部通信同步方法
实现MongoDB数据库selete中as方法
QueryBuilder相关类库移动到Database下,并且增加mod和or_mod方法
核心MyQEE类库改为全小写,Develop_Tool类库改为develop,请注意config.new.php中的$config[‘libraries’]例子的变更

MyQEE RC3 现已提供下载

修正window下大小写问题导致获取base_url错误
ORM 完善,优化ORM Data数据的序列化功,getArrayCopy()方法返回全数组数据,配置参数解析功能完善
ORM 优化主键查询SQL Curl并发请求优化
Bootstrap升级
MyQEE Core类库完善,修复Session,Cache,Database等BUG
Core类库支持系统内部调用
更新后台类库,升级后台类库用户管理功能并优化后台页面输出
IP库更新到Discuz 2011-11-2日数据库
手册完善
语言包更新

MyQEE RC2 现已提供下载

更新日志:
手册更新
服务器配置完善
RC2默认加入后台管理类库
修正数据库事务bug
后台类库增加tooltip显示功能
修复数据库主从连接复用问题
完善Core异常抛错头部输出
后台类库左侧菜单支持下拉收缩
修复ORM获取数据时当已经设置了null或false数据时不能够正确获取数据的bug
修复数据类在长时间使用情况下有可能连接丢失导致程序死循环
完善数据库事务功能,修复子事务不能开启的bug
bootstrap 升级到1.8
数据库类库修复当同一个链接的不同的库采用不同编码时导致的错误
完善IP来源类库
增加安装程序类库
数据库增加create_database方法
核心类库在非调试情况下捕获错误的bug修正
其它一些细节修改