CrossPHP 1.4.1 發佈了

1.4.1 更新說明

一. BUG修復

  1. 修復多條件下AND條件解析錯誤的bugphp

    'p' => array( 'AND',  array(array('<=', 5), array('>', 0)))
  2. 修復Cross\MVC\Controller::to()方法第三個參數無效的bugmysql

二. 不兼容性更新

  1. 刪除了不完善的PYInitials庫sql

  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 中的成員命名)app

  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

相關文章
相關標籤/搜索