PhalApi-v1.3.1 (感恩版)发布,PHP轻量级开源接口框架

[前言]

感恩节来临之际,PhalApi迎来了等候了一个多月的v1.3.1版本更新.

在v1.3.1版本中着重对1.3.0版本中存在BUG进行了修复,并且进一步完善了各项功能,就让小编与大家一同怀着一颗对开源感恩的心,来分享此次更新的具体内容:

基于老版本开发的应用可以无缝升级到v1.3.1版本,直接覆盖核心文件PhalApi即可使用新版功能(涉及到有个人修改部分需要自行调整)

[重要更新]

  1. 重构PhalApi_DB _NotORM,以便支持定制MySQL外的数据库操作

    目前,NotORM支持: MySQL, SQLite, PostgreSQL, MS SQL, Oracle (Dibi support is obsolete)。

    定制自己的数据库连接的PDO。

    class Common_MyDB extends PhalApi_DB_NotORM {
    
        protected function createPDOBy($dbCfg) {
            /* Connect to an ODBC database using driver invocation */
        $dsn = 'uri:file:///usr/local/dbconnect';
        return new PDO($dsn, $dbCfg['user'], $dbCfg['password']);
        }
    }

    随后,在初始化文件init.php中重新注册DI()->notorm即可

    DI()->notorm = function() {
        $debug = !empty($_GET['__sql__']) ? true : false;
        return new Common_MyDB(DI()->config->get('dbs'), $debug);
    };
  2. 完善NotORM对数据库维度的事务操作支持 感谢@研究研究 反馈

    //Step 1: 开启事务
    $this->notorm->beginTransaction('db_demo');
    
    //Step 2: 数据库操作
    $this->notorm->user>insert(array('name' => 'test1'));
    $this->notorm->user>insert(array('name' => 'test2'));
    
    //Step 3: 提交事务
    $this->notorm->commit('db_demo');
  3. 扩展你的参数类型,定制请求参数验证,邮件例子如下:

    我们需要一个实现了邮件类型验证的功能类:

    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;
        }
    }

    然后,注册一下:

    DI()->_formatterEmail = 'Common_MyFormatter_Email';

    这样就可以使用自定参数验证格式

    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开源,依然在路上!



新闻来源:PhalApi-v1.3.1 (感恩版)发布,PHP 轻量级开源接口框架