戸田 広
info****@sciss*****
2012年 6月 23日 (土) 21:13:15 JST
こんばんは、戸田です。 いささか旧聞となってしまいましたが、今月 6月13日に EllisLabから CodeIgniter 2.1.1 がリリースされました。 http://codeigniter.com/news/codeigniter_2.1.1_released 上記ニュースリリースで挙げられている変更点と、 コードの変更内容は、おおむね次の通りです。 誤りがありましたら、ご指摘ください。 ・ファイルアップロードクラスでの MIME type 検知が調整されました。 具体的には、「docx」「xlsx」に対応する MIME type に 「application/zip」が追加されています。 ・ url_title() が調整されました。 単語間の区切り文字に、任意の文字が使えるようになりました。 「dash」「underscore」は、後方互換として 2.1.0 までと同様に使用できます。 ・IPv6 の IP アドレスに対応しました。 具体的には、 valid_ip() で IPv6 IP アドレスを検知できるようになりました。 第2引数に「ipv4」「ipv6」と指定できます。 ・ファイルアップロードクラスで、 MIME type の検証処理方式が修正されました。 ・form_open() の実行時、第1引数に site_url() の結果が入っていないか チェックされていたのを、 base_url() の結果が入っていないかチェックするよう 変更されました。 ・CI_Upload::_file_mime_type() の内部処理が修正され、 mime_content_type() が使えない環境で 処理を行わず return してしまうのが修正されました。 issue #750 と対応しています。 https://github.com/EllisLab/CodeIgniter/issues/750 ・system/libraries/Image_lib.php の 211 行目で、 Windows のファイルパスかどうかの条件が分岐処理から外されました。 ・$this->db->query() の処理で、 バインディングよりも先にキャッシュの確認を行っていたせいで キャッシュが見つからない状態になっていたので、 バインディングを行った後にキャッシュの確認を行うよう 処理順番が入れ替えられました。 ・CSRF保護機能で使われる cookie 値の正当性について、 2.1.0 では文字の有無のみチェックしていましたが、 2.1.1 では正規表現でのチェックを行うようになりました。 具体的には、 [0-9a-f]{32} でチェックされます。 ・PDO の使用時、「dbname」の指定が必須でしたが、 SQLite の使用を考慮して、 dbname は指定無しでも許容されるようになりました。 ・CI_DB_pdo_result::num_rows() の使用時、 SELECT クエリーのときでも正しい値が返るようになりました。 具体的には、これまで PDOStatement::rowCount() を使っていたすべての処理について SELECT クエリーのときは使わないように分岐しています。 ・CI_Image_lib::clear() のプロパティ値で抜けていた 「width」「height」が追加されました。 ・Active Record クラスの from() メソッド使用時に、 テーブル名のエイリアス指定で挿入された「AS」は削除されますが、 削除条件の正規表現が少し修正されました。 ・Active Record クラスの like() メソッドの第3引数に、 前方・後方どちらにも % をつけない「none」という指定ができるようになりました。 (どんな使い道があるんでしょう?) ・system/language/english/migration_lang.php で、 $lang['migration_missing_down_method'] の文言が誤っていたのが 修正されました。 ・アップロードクラスの do_xss_clean() メソッドで、 HTMLタグ文字列の検知時に FALSE を返す処理が抜けていたのが追加されました。 以上です。