CrossPHP 1.5.2 发布了! 1.5.2 更新说明 一. Rest和mRun优化 增加一个匿名函数mismatching $web = Cross\Core\Delegate::loadApp('web'); $rest = $web->rest(); $rest->get('/hi', function(){ echo 'Hi cross php!'; }); $rest->on('mismatching', function(){ echo 'mismatching'; }); try { $rest->run(); } catch (Exception $e) { $web->get('error', array('exception' => $e)); } uri不匹配时执行mismatching匿名函数, 调用$web->run()再次匹配url,mismatching在rest和mRun模式下生效 二. 参数优化 增加匿名函数setParams用于为$this->params赋值时验证参数的值 $web = Cross\Core\Delegate::loadApp('web'); $web->on('setParams', function( &$v, $k ) { if ($k == 'p') { if(! ctype_digit($v) ) { //to some thing... } } }); try { $web->run(); } catch (Exception $e) { $web->get('error', array('exception' => $e)); } 第一个参数为$this->params中参数的值, 第二个参数为$this->params的键 优化参数, 除了url为2以外, 默认合并$_GET中的值到$this->params /** * @cp_params p, order=1 */ function foo() { print_r($this->params); } 当@cp_params生效时, 解析参数的过程实际上是为@cp_params赋值的过程. 当参数不足或为空时, 返回默认值: array('p'=>'', 'order'=>1) 当参数多余时则丢弃. 三. 结构优化 Request和Response放到Cross\Http的命名空间 增加Cache\Driver和Cache\Request命名空间, 分别存放缓存驱动和处理请求缓存的类 四. 其他优化 增强类型约束 优化rest的uri匹配算法 ClosureContainer增加isRegister方法, 用于检查匿名函数是否已经注册 完善Redis缓存类 app配置文件中新增加encrypt项, 用于配置uri和auth加解密key 统一从Delegate::getResponse()中获取Response的实例 CrossPHP 1.5.2 发布,轻量级 PHP 开发框架下载地址