当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

CrossPHP 1.4.1 发布了

作者:小梦 来源: 网络 时间: 2024-04-12 阅读:

1.4.1 更新说明

一. BUG修复

  1. 修复多条件下AND条件解析错误的bug

        'p' => array( 'AND',  array(array('<=', 5), array('>', 0)))
  2. 修复Cross\MVC\Controller::to()方法第三个参数无效的bug

二. 不兼容性更新

  1. 删除了不完善的PYInitials库

  2. Cross\MVC\View::makeParams(), 第一个参数强制指定为数组, 仅支持字符串

  3. Cross\Core\CrossArray::get($config, $name = null), $config不再识别数组

二. 优化和功能更新

  1. 非HTML视图不再加载layer

  2. 增加 PATH_INFO 模式下的短URL风格支持(需要使用注释配置 @cp_params, 来为 $this->params 中的成员命名)

  3. 调用display_type中指定的方法时, 不再强制转换大小写(display_type在init.php配置文件中指定)

  4. Cross\MVC\View::makeUri()生成的uri不再包含app名称

  5. 分离SQLAssembler中的条件解析部分(更容易扩展)

  6. 新增对mysql函数INSRT的支持

  7. 支持自定义默认数据库名称(在app配置文件init.php中使用sys['default_db']指定)

  8. Cross\Core\Loader::read()读取.ini文件时, 返回多维数组

  9. 优化生成连接的速度
    10. 框架内部,判断文件是否存在用is_file代替file_exists
    11. 更新单元测试代码,增加了对生成基础SQL语句的条件覆盖

1.4.0 更新说明

一. 数据库操作的改进

  1. 新增一种写法

        $this->link->get(table, fields, array('a = ? AND b = ?', array(1, 2))

    第一个参数为条件的预处理字符串, 第二个参数为参数列表. 以上写法等同1.3.0以下写法:

        $this->link->get(table, fields, array('a' = 1,  'b' = 2))

    生成的SQL语句均为 SELECT fields FROM table WHERE a = ? AND b = ?, 省去条件解析, 所以比1.3.0更高效.

  2. 扩展数组语法,用于处理复杂查询条件下的优先级

        $this->link->get(table, fields, array(        '(a = ? OR b = ?)' => array(1, 2),        'c'    => 1,    ) 生成的sql语句为 `SELECT fields FROM table WHERE (a = ? OR b = ?) AND c = ?`, 以上语句可以转换为更高效的写法    $this->link->get(table, fields, array(        '(a = ? OR b = ?) AND c = ?', array(1, 2, 1)    ))复杂条件下,推荐使用新写法
  3. find方法的 $page 参数支持在外部指定总记录条数 result_count, 此时内部获取总条数的语句不再执行, 直接使用外部指定的总条数来生成对应的分页查询语句.

  4. where条件中增加对find_in_setregexp方法的支持

        $this->link->get(table, fields, array('name' => array(find_in_set, 'id1, id2...')))

二. 路由配置行为改变

  1. init.php文件中的router配置项中的数组不再表示控制器中action的别名.

        router => array(        'help'    =>    array('aliasController', array('a'=>1, 'b' => 2))    )以上配置表示为`aliasController`指定别名`help`, 默认参数为 `array('a'=>1, 'b' => 2)`,
  2. 为控制器中的方法指定别名用冒号来表示

        router => array(        'help:list'    =>    'help:getList'    )为`help`控制器中的`getList`指定别名为`list`

三. 其他优化

  1. 文件缓存内部增加读取配置的方法

  2. 修复多模板情况下,请求缓存被覆盖的问题

  3. 指定URL规则为1或3时, rewrite状态下带?访问默认控制器报错的bug

  4. Request->getUrlRequest()增加默认返回值

  5. 读取配置文件的值时, $this->config->get('key', params), 如果第二个参数的值为数组则返回数组中指定的值

  6. 不再限制控制器中__call方法对注释配置的识别

  7. Helper增加一个方法用于验证国内身份证号码

  8. View中的 $this->e(array, array_key, default_value) 方法,需要加 echo

热点阅读

网友最爱