CI框架3.x部分新增特性

  1. CI框架从3.0开始,输入类Input开始支持用数组的方式去取变量值。例如:
    以前(2.x):
    $user_id = $this->input->post('user_id', true);
    $nickname = $this->input->post('nickname', true);
    $version = $this->input->post('version', true);
    ...
    $address = $this->input->post('address', true);
    改进(3.x):
    $keys = array('user_id', 'nickname', 'version');
    list($user_id, $nickname, $version, $address) = $this->input->post($keys, true);

  2. 使用 input_stream() 来获取php://input流数据,例如 PUT 请求
    以前:
    $rsv = file_get_contents("php://input");
    $data = json_decode($rsv,1);
    $user_id = intval($data['user_id']);
    $nickname = stripSql($data['nickname']);
    $version = stripSql($data['version']);
    改进:
    $keys = array('user_id', 'nickname', 'version');
    list($user_id, $nickname, $version, $address) = $this->input->input_stream($keys, true);

  3. 在http和https的兼容上面,$this->config->base_url() 添加了第二个参数 $protocol,可以传入http/https。如果传入【""】,会得到//开头的链接,表示自适应。
    示例:
    $CI =& get_instance();
    $url = $CI->config->base_url("yilucaifu/buy/1024", "");
    /**
    * window.location="//shop.ci123.com/flashsale/yilucaifu/buy/1024";
    */

  4. get(), post(), get_post(), cookie(), server(), user_agent()在没有取到数据的时候,返回NULL而非FALSE。
    意义:
    在以前(2.x),$p = $this->input->get('p', true); isset($p) 始终为真;到3.x后,如果没有p参数,isset($p)为假。

  5. BASEPATH, APPPATH 被定义为了绝对路径,在脚本里可以直接使用这些变量了。

  6. CI 3.x原生支持composer。新建composer.json,填写内容后update就可以使用了。

发表评论