PhalApi-v1.3.1 (感恩版)发布,PHP轻量级开源接口框架 [前言]感恩节来临之际,PhalApi迎来了等候了一个多月的v1.3.1版本更新. 在v1.3.1版本中着重对1.3.0版本中存在BUG进行了修复,并且进一步完善了各项功能,就让小编与大家一同怀着一颗对开源感恩的心,来分享此次更新的具体内容: 基于老版本开发的应用可以无缝升级到v1.3.1版本,直接覆盖核心文件PhalApi即可使用新版功能(涉及到有个人修改部分需要自行调整) [重要更新]重构PhalApi_DB _NotORM,以便支持定制MySQL外的数据库操作 目前,NotORM支持: MySQL, SQLite, PostgreSQL, MS SQL, Oracle (Dibi support is obsolete)。 定制自己的数据库连接的PDO。 1 2 3 4 5 6 7 8 | class Common_MyDB extends PhalApi_DB_NotORM {
protected function createPDOBy( $dbCfg ) {
$dsn = 'uri:file:///usr/local/dbconnect' ;
return new PDO( $dsn , $dbCfg [ 'user' ], $dbCfg [ 'password' ]);
}
}
|
随后,在初始化文件init.php中重新注册DI()->notorm即可 1 2 3 4 | DI()->notorm = function () {
$debug = ! empty ( $_GET [ '__sql__' ]) ? true : false;
return new Common_MyDB(DI()->config->get( 'dbs' ), $debug );
};
|
完善NotORM对数据库维度的事务操作支持 感谢@研究研究 反馈 1 2 3 4 5 6 7 8 9 | $this ->notorm->beginTransaction( 'db_demo' );
$this ->notorm->user>insert( array ( 'name' => 'test1' ));
$this ->notorm->user>insert( array ( 'name' => 'test2' ));
$this ->notorm->commit( 'db_demo' );
|
扩展你的参数类型,定制请求参数验证,邮件例子如下: 我们需要一个实现了邮件类型验证的功能类: 1 2 3 4 5 6 7 8 9 | class Common_MyFormatter_Email implements PhalApi_Request_Formatter {
public function parse( $value , $rule ) {
if (!preg_match( '/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/' , $value )) {
throw new PhalApi_Exception_BadRequest( '邮箱地址格式错误' );
}
return $value ;
}
}
|
然后,注册一下: 1 | DI()->_formatterEmail = 'Common_MyFormatter_Email' ;
|
这样就可以使用自定参数验证格式 1 | array ( 'name' => 'user_email' , 'type' => 'email' )
|
[亮点更新]1、添加Ruby版SDK包 2、完善listAllApis.php,可按注释进行字典排列,支持多级目录扫描 3、添加支持Yaconf扩展读取配置 4、添加了Medoo扩展类库,由 @转身.满目疮痍 提供 5、添加了DB_Cluster扩展类库,由 @喵了个咪 提供 6、提供了Redis扩展类型,由 喵了个咪 提供 7、重构并设计格式化类:PhalApi_ Request_Var,使之支持项目扩展定制化;并添加callable回调类型、为数组和日期补充最值检测 8、DI()->notorm::queryAll()与DI()->notorm::queryRows()第二个参数$parmas改成缺省默认为array() 9、修复一些轻量bugfixed 感谢@scott 反馈 [其他更新]1、PhalApi进阶教程的编写,为喜欢PhalApi的童鞋解读PhalApi,进一步了解PhalApi使用他解决实际问题,请见:http://my.oschina.net/wenzhenxi/blog/534828 [致谢]相关链接: PhalApi在线文档:http://www.phalapi.net/wikis/ PhalApi免费下载:http://git.oschina.net/dogstar/PhalApi 在本次版本更新中,需要特别感谢以下同学的努力与贡献(顺序不分先后): @转身.满目疮痍、@喵了个咪、@scott、@研究研究、@dogstar 再次感谢,开源的路上,@开源中国和大家一直以来对PhalApi的关注和肯定,谢谢! PhalApi开源,依然在路上! |