変更履歴
Version 1.7.3
リリース日付: 2010年12月06日
バージョン 1.7.3 はセキュリティ保守リリースです。以前のファイルアップロードクラスへのパッチと、新に特定の環境下でのディレクトリトラバーサル脆弱性を防ぐセキュリティ修正が追加されています。 他に重要な変更はありません。
Version 1.7.2
リリース日付: 2009年9月11日
SVN リビジョン: 1737
- ライブラリ
- カートクラスを新しく追加しました。
- ファイルアップロードクラスに$config['file_name'] を渡し、アップロードしたファイルをリネームできるようにしました。
- リストアップされたユーザエージェントの順序を変更しました。Safariでアクセスした際に、より正確にユーザエージェント報告するようになります。(#6844)
- データベース
- 将来のPHPバージョンが出力を変えるかもしれないので、escape() 内で、gettype() を使用するのをやめ、 is_* メソッドを使用するようにしました。
- escape_str() で配列を扱うよう、全データベースドライバを更新しました。
- LIKE 条件で文字列をエスケープするための escape_like_str() メソッドを追加しました。
- Active Record で、LIKEの新しいエスケープ方法を利用するよう変更しました。
- 接続の維持や長時間のアイドル状態の後の接続の再確立を試行できるよう reconnect() メソッドをデータベースドライバに追加しました。
- MSSQL ドライバで、エラーメッセージに、mssql_get_last_message() を使うよう変更しました。
- ヘルパ
- Formヘルパにform_multiselect()を追加しました。
- Formヘルパのform_hidden()を多次元配列を受け入れるように修正しました。
- Formヘルパのform_prep()を処理済みのフィールドを追跡するように修正しました。 これは、Formバリデーション(検証)やFormフィールドを出力するためにFormヘルパ関数を使った際に起こりうる、連続したform_prep()の呼び出しによる多重の処理・変換を避けるためです。
- ディレクトリヘルパのdirectory_map()を、隠しファイルを含められるようにし、ディレクトリの読み取りに失敗した際にFALSEを返すように修正しました。
- スマイリーヘルパを複数のフィールドで動作するようにし、最後のカーソルの場所に、スマイリーを挿入するようにしました。
- 一般
- PHP 5.3.0に対応しました。
- show_error() をHTTPサーバレスポンスコードを送信するよう変更しました。
- show_404()を404ステータスコードを送信するように変更し、CGIと互換性のないheader()を含む文を error_404.php テンプレートから取り除きました。
- 出力クラスが利用できない場合に使えるよう、共通関数に、set_status_header()を追加しました。
- PHPバージョンの簡単な比較ができるよう、共通関数に、is_php()を追加しました。
- 2つのCodeIgniter "チートシート" (DesignFellow.com からの寄贈に感謝します) を追加しました。
1.7.2の不具合修正
- 様々なユーザガイドの誤字やサンプルコードを修正しました。 (#6743, #7214, #7516, #7287, #7852, #8224, #8324, #8349)
- Formバリデーション(検証)ライブラリで、複数のコールバックが動作しない不具合を修正しました。(#6110)
- doctype ヘルパ関数のデフォルト値で、"1"が設定されていなかったのを修正しました。
- 言語クラスで、ファイルが見つからない場合にエラーを出力する際の不具合を修正しました。
- カレンダーライブラリで、5月に対応する短縮名を出力する際の不具合を修正しました。
- ORIG_PATH_INFOを利用する際に、スラッシュひとつだけのURIを許可していた不具合を修正しました。
- Oracle と ODBC ドライバの致命的なエラーを修正しました。(#6752)
- xml_from_result() が、存在しないメソッドをチェックしていた不具合を修正しました。
- データベースフォージの add_column と modify_column で、複数のフィールドが送られた際に、ループ処理していなかった不具合を修正しました。
- ファイルヘルパで、DIRECTORY_SEPARATOR 定数の代わりに、'/'が使用されていた不具合を修正しました。
- PHPのpopen()関数が手動で無効にされたサーバ上のsendmailを利用しようとする際に起こるPHPエラーを回避するよう修正しました。
- 特定の XML-RPC 型 がPHPのデータ型と一致しない場合に起こる XML-RPC データのPHPエラーに起因する不具合を修正しました。
- XML-RPC クラスが dateTime.iso8601 データ型を解析する際の不具合を修正しました。
- xss_clean() のケースセンシティブな(大文字小文字を区別する)文字列の置換を修正しました。
- form_textarea() で、フォームデータが正常に処理されない不具合を修正しました。
- form_prep() を使用すると、フォーム要素に値が呼び戻されるときに、ユーザのオリジナルの入力によるHTMLエンティティが保存されない不具合を修正しました。
- _protect_identifiers() メソッドで、置き換えられたデータベースプリフィクス($swap_pre)をチェックしていなかった不具合を修正しました。
- 'disallowed URI characters [許可されないURI文字]' のエラーの際に送信される400 ステータスヘッダが、CGI環境と互換性がない不具合を修正しました。
- タイポグラフィクラスで、auto_typography()を使用すると、見出しタグの中に段落タグが挿入されてしまうことがある不具合を修正しました。
Version 1.7.1
リリース日付: 2009年2月10日
SVN リビジョン: 1640
- ライブラリ
- Formバリデーション(検証)ライブラリで、任意のスクリプトが実行されるセキュリティ上の欠陥(#6068)を修正しました。 (hkk さんに感謝します)
- ページネーションライブラリの、現在のページの既定のインディケータで、<b>の代わりに<strong>を使用するようにしました。
- 不正な文字列が検出された場合に、 "HTTP/1.1 400 Bad Request" ヘッダを送信するようにしました。
- <big>, <small>, <q> および <tt> をタイポグラフィパーサのインライン要素に追加しました。
- sendmailを使用した際に、Emailライブラリで、より正確なエラー報告をするようにしました。
- 画像操作クラスのrotate()メソッドで厳密な型チェックをしないようにしました。
- GD ライブラリを使用した際、画像ライブラリでファイルを保存するときのエラー報告を改善しました。
- 多くの MUA との互換性を高めるため、マルチパートEmailヘッダとMIMEメッセージテキストの間に新しい行を追加するようにしました。
- 画像ライブラリの explode_name() で、効率と正確性を少し改善しました。
- データベース
- delete()が受け取ることができる引数のリストに、where_inを追加しました。
- ヘルパ
- Formヘルパのform_dropdown()でoptgroupタグを含めることができるようにしました。
- HTMLヘルパにdoctype()関数を追加しました。
- URLヘルパのurl_title()で、強制的に小文字に変換することができるようになりました。
- Formヘルパのform_button()の既定の"type"属性の値を"submit"から"button"に変更しました。
- URLヘルパの redirect()をCIのサイトの外部のURLへリダイレクトできるように変更しました。
- 要求されたクッキーの名前が存在しない場合、グローバルのクッキープリフィックスを使って、クッキーを読み取るよう、get_cookie()を変更しました。
- その他の変更
- Internet Explorerを対象とした攻撃を回避するのに利用できるよう、xss_clean()のセキュリティを改善しました。
- .xls ファイル用にconfig/mimes.phpに'application/msexcel'を追加しました。
- 訪問者のIPアドレスを決定するために、 HTTP_X_FORWARDED_FORヘッダを信頼して良いリバースプロキシサーバのホワイトリストを設定できる 'proxy_ips' 設定項目を追加しました。
- Upload::is_allowed_filetype() で、画像を対象に正確性を改善しました。 (#6715)
1.7.1の不具合修正
- データベース
- order_by() で、'random'を指定した際の不具合(#5706)を修正しました。
- データベースフォージを使って主キーを追加しようとすると失敗する事がある不具合(#5731)を修正しました。
- 複数のデータベースを利用して、データベースキャッシュを使った時に起こる不具合 (#5737)を修正しました。
- TRUNCATE が"書き込み" クエリとして処理されない不具合(#6619)を修正しました。
- csv_from_result() で、存在しないメソッドをチェックしていた不具合を修正しました。
- _protect_identifiers() で、項目から不適切にパイプシンボルをすべて除去していた不具合を修正しました。
- 様々なユーザガイドの誤字やサンプルコードを修正しました。(#5998, #6093, #6259, #6339, #6432, #6521)
- MySQLi ドライバで、ポートが指定されていない場合の不具合を修正しました。
- あるフィールドがもう一方と "一致" する場合に、フィールドのラベルを適切に読み取れない不具合(#5702)を修正しました。
- 予約文字が使用されていた場合に、識別子が適切にエスケープされない不具合を修正しました。
- auto typographyで、送信された段落タグを保護するための正規表現の不具合を修正しました。
- タグの属性に含まれるダブルスラッシュが、em ダッシュ[長いダッシュ] HTMLエンティティに変換される不具合を修正しました。
- タグの属性に含まれる2重スペースが、ノンブレークスペース HTMLエンティティに変換される不具合を修正しました。
- Typography::format_characters() のカーリークォート[“”]の正確性の問題を修正しました。
- いくつかの docblock コメントを実際の戻り値に対応させるよう変更しました。
- 件名やメールヘッダに含まれる上位ビットの ascii 文字についての不具合を修正しました。
- xss_clean() で、検証済みの文字エンティティに続くホワイトスペースが保持されない不具合を修正しました。
- Typography::auto_typography()において、HTMLコメントおよび<pre> タグが、変換されてしまう不具合を修正しました。
- Typography::auto_typography()の、ノンブレークスペースのクリア処理の不具合を修正しました。
- データベースプリフィックスがある場合に複合文(ie:SUM())で、データベースのエスケープ処理が正しく処理されない不具合を修正しました。
- 段落タグに続いて引用の開始があり、そのすぐ後に別のタグがあるときの不具合を修正しました。
- テキストヘルパで、アクセント付き文字で開始または終了する単語に対しword_censor()が動作しないという、いくつかのロケールに影響する不具合を修正しました。
- テキストヘルパのcharacter_limiterで、文字列の最後の単語が、指定された制限文字数にかかる場合の不具合を修正しました。
- 語形変換ヘルパの plural() で、"y" で終わる単語を扱う際の不具合(#6342)を修正しました。
- URI::rsegment() メソッドによって返される、ルーティングされた後のURIセグメントが、デフォルトコントローラに関するURIの場合に間違っている不具合(#6517)を修正しました。
- セキュリティヘルパのxss_clean() で、古い形式の第二引数を使用していた不具合(#6706)を修正しました。
- URLヘルパの url_title() 関数で、ピリオドをURLの最後に付加することができる不具合を修正しました。
- Emailクラスで、"mail"プロトコルを利用する際に、 ヘッダにCRLFが改行文字として使用されるときの不具合(#6669)を修正しました。
- URI::A_filter_uri() で、show_error()を使う代わりに、exit()で終了していた不具合(#6500)を修正しました。
- ファイルヘルパの get_dir_file_info()で、再帰処理が適切に行われない不具合 (#6592)を修正しました。
- Typography::auto_typography() を特定の状況下について調整しました。
Version 1.7
リリース日付: 2008年10月23日
SVN リビジョン: 1541
- ライブラリ
- 新しくFormバリデーション(検証)クラスを追加しました。これにより、ルールやフィールド名の設定が簡単になり、配列によるフィールド名の設定がサポートされ、設定ファイルに保存できる検証ルールのグループを取り扱うことが可能になり、ビューファイルで利用できるヘルパ関数も追加されました。 古いバリデーション(検証)クラスは、非推奨となったので、注意してください。 古いクラスは、既存のアプリケーションが停止しないように、いくらかの間は、ライブラリフォルダの中に残しますが、新しいバージョンに移行することを推奨します。
- セッションクッキーにではなく(セッションデータを保存するのにデータベースを使用しているとした場合)、データベースに、どんなユーザデータも保存できるよう、セッションクラスを更新しました。より多くのデータを保存することができます。
- メインの "libraries" または、ローカルアプリケーションの "libraries" フォルダの中にサブディレクトリを作ってライブラリを設置できるようにしました。詳しくは、 ローダー(読込み処理)クラスをご覧ください。
- $this->load->library()を使う際に、ユーザが指定した名前でライブラリオブジェクトを割り当てることができるようになりました。詳しくは ローダー(読込み処理)クラス をご覧ください。
- プロファイラクラスにコントローラのクラス/メソッド情報を追加し、複数のデータベース接続にも対応しました。
- "auto typography" 機能を改善し、ヘルパーからタイポグラフィクラスにそれらの機能を移しました。
- 画像/ファイル検査での見逃しを減らすなど、xss_clean() のパフォーマンスと正確性を改善しました。
- パーサクラス でparse() メソッドを複数回呼び出せるよう改善しました。各出力は最終出力に追加されます。
- ファイルアップロードクラスに、ファイル名の最大長をセットできる max_filename オプションを追加しました。
- set_status_header() メソッドを出力クラスに追加しました。
- ページネーションクラスで、1ページ目へのリンクが表示されないときにだけ、"最初のページ" のリンクを表示するようにしました。
- Formバリデーションクラスで、マルチバイトの言語での文字列の長さを正確に計算できるよう、mb_strlenをサポートするようにしました。
- データベース
- Active Record クラスで、フルパスの列およびテーブル名: ホスト名.データベース.テーブル.列 の取り扱いを改善しました。また、別名の取り扱いも改善しました。
- テーブルおよび列名のエスケープおよびプリフィックス付加の方法を改善しました。プリフィックスを付加した場合やエスケープした場合でも、フルパスの名前が使えます。
- update および delete メソッドにActive Record キャッシュ機能を追加しました。
- DBドライバの escape_str() にネイティブPHPのエスケープ処理 (mssql, oci8, odbc)にはない、非プリント文字・制御文字の除去を追加しました。これは、潜在的なSQLエラーや潜在的なSQLインジェクションの起点になるのを回避するためです。
- MySQL, MySQLi, および MS SQL データベースドライバにポート番号のサポートを追加しました。
- バグレポート #4436 に基づいて、各DBドライバにドライバ名の変数を追加しました。
- ヘルパ
- Formヘルパ にPOSTデータを読み取って、フォームにセットすることができる、いくつかの"セット"関数を追加しました。これらは、独立で、または、新たなFormバリデーション(検証)クラスと一緒に使うのを想定しています。
- URLヘルパにcurrent_url() と uri_segments() を追加しました。
- "+"を含むEmailアドレスがリンクになるように、URLヘルパのauto_link()を置き換えました。
- HTMLヘルパに meta() 関数を追加しました。
- 数字ヘルパにおける計算の精度を改善しました。
- FormおよびHTMLヘルパ関数の大部分から、付加された改行("\n")を取り除きました。
- 日付ヘルパのhuman_to_unix() 関数での検証を厳密にし、POSIX 正規表現を削除しました。
- 日付ヘルパ を現在のタイムゾーンと時差に適合するよう変更しました。
- 文字エンティティの一部の文字や数字を取り除き、セパレータ($separator)であるかないかにかかわらず、 ダッシュ、アンダースコア、ピリオドを許可し、大文字の文字を許可するよう、URLヘルパの url_title()を変更しました。
- URLヘルパのanchor_popup() で任意の属性をサポートするようにしました。
- その他の変更
- PHP スタイルガイドをドキュメントに追加しました。
- Internet Explorerでのユーザ入力で乱用されうる非奨励タグのサニタイズ処理をxss_clean()に追加しました。
- いくらかの openxml ドキュメントのMIMEタイプおよび、モバイルエージェントをmimes.php と user_agents.phpにそれぞれ追加しました。
- キャッシュ処理中で、ファイルに書き込む前に、ファイルのロック状態をチェックするようにしました。
- CIの実行が停止しないように、特定の環境下で明らかになった問題を起こしそうなキー名を無効にするよう、Cookieのキークリーニング処理を変更しました。
- プロファイラの出力をclear属性を使用せずstyle属性を使用するようにし、divコンテナに、"codeigniter_profiler"というid属性を追加しました。
1.7.0の不具合修正
- xss_clean() で、タグの必須属性を削除してしまう不具合を修正しました。
- 様々なユーザガイドの誤字やサンプルコードを修正しました。(#4807, #4812, #4840, #4862, #4864, #4899, #4930, #5006, #5071, #5158, #5229, #5254, #5351)
- 1.6.3からの変更で、user_agents.phpの中の、$robots配列が消えていたのを修正しました。
- Emailライブラリで quoted-printable エンコーディングを使用するときに、スペースとタブが不適切にエンコードされてしまう不具合を修正しました。
- XSS サニタイズ[無害化] において、M&M's, B&Bなどの、&[1文字] の後にセミコロンを付加しないようにしました。
- XSS サニタイズ[無害化]において、XHTML の画像タグの終了スラッシュを除去しないようにしました。
- セッションクラスで、データベースセッションを利用しているとき、セッション更新時にすべてのユーザデータが誤ってセッションクッキーに書かれる不具合を修正しました。
- MySQL ドライバでのバックアップで、いくつかの古いコードが原因で、特定の文字が二重にエスケープされていた不具合(#4536)を修正しました。
- デフォルトのルートがサブフォルダの場合に起こるルーティングの不具合 (#4661)を修正しました。
- 日付ヘルパのtimezone_menu() 関数の"Dhaka"のスペルを修正しました。
- config/smileys.php の"raspberry" のスペルを修正しました。
- form_open() 関数で、 不正な丸括弧が出力される不具合 (#5135) を修正しました。
- コントローラのメソッドを比較する際に、大文字小文字の区別が無視される不具合(#4560)を修正しました。
- initialize メソッドを使用した際に、SMTPの認証設定が有効にならない不具合 (#4615)を修正しました。
- テキストヘルパ のhighlight_code()で、特定のケースで、対応するタグがない</span>が取り残される不具合を修正しました。
- 1度のアクションで、複数のクエリを発行できないOracle の不具合 (#3306)を修正しました。
- コンストラクタを使用すると接続パラメータが無視されるODBCの不具合を修正しました。
- Oracle ドライバでnum_rows()を使用した際にエラーが起こる不具合を修正しました。
- MS SQL の不具合 (#4915)を修正しました。 MS SQL ドライバで、名前に予約語が含まれている場合にデータベースを選択する際、追加のカッコがデータベース名に付加されていました。
- URIセグメントがない場合にパスが不正になる、DBキャッシングの不具合(4718)を修正しました。
- Image_lib クラスの不具合#4562 を修正しました。NetPBM向けにパスが定義されませんでした。
- Image_lib クラスの不具合 #4532 を修正しました。 出力に同一の高さ・幅が設定されているときにトリミングした際に、コピーが作成されます。
- データベースエラーが正しくログ出力されないDB_driverの不具合(4900)を修正しました。
- フィールド名がエスケープされないデータベースバックアップの不具合を修正しました。
- データベース Active Record キャッシングで、キャッシュされたデータを複数回呼ぶと、データを受け取れない不具合を修正しました。
- セッションクラスで、シリアル化した配列でスラッシュを使用できない不具合を修正しました。
- Formバリデーションで、"isset" のエラーメッセージが"required"ルールにより呼び出される不具合を修正しました。
- ローダーのエラーメッセージのスペルミスを修正しました。
- 空のセグメントの場合の IPの検証に関する不具合(5050)を修正しました。
- 複数の同一のタグの組が現れた際に、パーサーで、最長マッチが行われてしまう不具合を修正しました。
Version 1.6.3
リリース日付: 2008年6月26日
SVN リビジョン: 1238
バージョン 1.6.3 は、セキュリティおよびメンテナンスリリースで、すべてのユーザに推奨されます。
- データベース
- ライブラリ
- アップロードクラス のMIMEタイプチェックで、グローバル変数"mimes" を参照するようにしました。
- 自動検出または、明示的な宣言によるページネーションクラスでのクエリ文字列のサポートを追加しました。
- 入力クラスにget_post()を追加しました。
- 入力クラスのget()についての記述をドキュメントに追加しました。
- 言語クラスで、自動で言語項目をフォームラベルとして出力できるようになりました。
- ヘルパ
- その他の変更
- xss_clean()のセキュリティを改善しました。
- _display_cache()での未使用のルータへの参照を削除しました。
- XSSに関して、アップロードのセキュリティ有用な、use xss_clean() で画像をテストする機能を追加しました。
- config/user_agents.php のモバイル ユーザエージェントのリストを大幅に拡張しました。
- 国際化の目的(#4614)のため、ユーザガイドの文字セット情報をtitleの上に移動しました。
- ユーザガイドの XMLRPC のページに、"リクエストパラメータに連想配列を使用する"の例を追加しました。
- Formヘルパのform_input() で自動的にmaxlength と size 属性が追加されないようにしました。
- 数字ヘルパのbyte_format()の言語ファイルの使用についてドキュメントに記述しました。
1.6.3の不具合修正
- validation_lang.phpに、valid_emails 検証ルールのためのlanguage keyを追加しました。
- DSN データベース接続をパースする際のバグ(#3419)を修正しました。
- _has_operators() メソッドを DB_active_rec からDB_driverに移動しました。(#4535)
- upload_lang.php の文法エラーを修正しました。
- 画像ライブラリの中の正規表現に関する不具合(#4542)を修正しました。
- orhaving() が適切に値を渡していなかった不具合(#4561)を修正しました。
- いくつかの未使用の変数を削除しました。 (#4563)
- having() で、文に=が追加されない不具合 (#4568) を修正しました。
- 様々なユーザガイドの誤字やサンプルコードを修正しました。(#4574, #4706)
- マルチパートが無効化されているときに、Emailクラスでquoted-printable ヘッダを追加するようにしました。
- 各システムディレクトリのindexページの 開始 <p> タグが2重になっていたのを修正しました。
Version 1.6.2
リリース日付: 2008年5月13日
SVN リビジョン: 1155
- Active Record
- having() 句で、エスケープを回避できるようにしました。
- DBフォージにrename_table() を追加しました。
- クエリの値がNULLであった場合に、無効化され、エスケープ処理ができなかった不具合を修正しました。
- DBフォージがすべてのモデルに割り当てられるようになりました。モデルのロード後に使えます。(#3457)
- データベース
- データベーストランザクションに厳密な(Strict)モードを追加しました。
- where() 句でのエスケープ方法が変わりました。"FALSE" を引数で指定した場合、値はエスケープ(ie:クォート処理)されません。
- 設定
- MIMEタイプのリストに、'application/vnd.ms-powerpoint' を追加しました。
- MIMEタイプのリストに、'audio/mpg' を追加しました。
- ファイルモードおよびfopen定数を含むユーザで変更可能なファイル、constants.php を新たに追加しました。
- Email クラスの設定項目で、CRLFをセットできる機能を追加しました。
- ライブラリ
- アップロードライブラリで、ファイル名の取り扱いに関するセキュリティを強化しました。
- クライアントサイドでのデータ改ざんに対するセッションのセキュリティを強化しました。
- MySQLi フォージクラスが、MySQL フォージと協調して動作するようになりました。
- Email クラスの設定項目で、CRLFをセットできる機能を追加しました。
- ユニットテスト の結果で、コードが色づけされ、これらの変更を結果表示のデフォルトのテンプレートとしました。
- バリデーション(検証) クラスに、valid_emailsルールを追加しました。
- Zip圧縮クラスで download() が利用できるようになりました。
- Zip圧縮クラス は、速度とコードの明瞭さのために、大きく書きなおされました。 (stanleyxu のバグレポート#3425についての大変な作業とソースコードの提供に感謝します!)
- ヘルパ
- PHP4のサーバで実行される可能性があるアプリケーションでいくつかのPHP5のネイティブ関数が安全に利用できるよう互換性ヘルパを追加しました。(Seppoの大変な作業とコードの提供に感謝します)
- Formヘルパにform_button()を追加しました。
- radio() と checkbox() 関数で、デフォルトでチェック状態にしないように変更しました。
- URLヘルパの redirect() 関数で、追加のHTTPレスポンスコードを含めることができる機能を追加しました。
- HTMLヘルパのimg() で、不要なスペースを削除しました。(#4208)
- URLヘルパのanchor()を、デフォルトのタイトル属性を付加しないよう変更しました。(#4209)
- ダウンロードヘルパにforce_download()が追加されました。
- get_dir_file_info(), get_file_info(), および get_mime_by_extension() をファイルヘルパに追加しました。
- symbolic_permissions() と octal_permissions() をファイルヘルパに追加しました。
- プラグイン
- 最初にimagecreatetruecolor関数をチェックし、それが利用できない場合に、imagecreateに機能を落としてcaptcha生成を行うよう変更しました。(#4226)
- その他の
変更
- xss_clean()で配列を受け取れるようになりました。
- 不慮の出力がされてしまい、'cannot modify headers' エラーが起こらないよう、すべてのPHPファイルからPHPの終了タグを取り除きました。
- Removedオートロード(自動読み込み)の検索パスから "scripts" を削除しました。 Scriptsは、Version 1.4.1 (2006年9月21日)から廃止予定とされていました。古い形式が必要な理由があってまだ使用している場合は、各コントローラで手動で読み込む必要があります。
- 予約語一覧 のページをユーザガイドに追加し、コントローラの予約名をこの中に移動しました。
- グローバルに利用可能な関数の説明のため、共通関数 のページをユーザガイドに追加しました。
- xss_clean() のセキュリティおよびパフォーマンスを改善しました。
1.6.2の不具合修正
- SETクエリが、"書き込み" クエリとして取り扱われない不具合を修正しました。
- ORIG_PATH_INFO の URI をパースするときの不具合(#3191)を修正しました。
- id フィールドを挿入するときのDBフォージの不具合(#3456)を修正しました。
- HTMLテーブルライブラリで、同様の内容で作成された行が抜けてしまう不具合(#3459)を修正しました。
- DBドライバ および MySQLi のクエリ結果で、オブジェクトの代わりにリソースをチェックしていた不具合(#3461)を修正しました。
- テーブルの別名を追跡していなかった AR_caching エラー(#3463)を修正しました。
- 引数を伴うselect文が、不正にエスケープされてしまう、Active Record のコンパイルの不具合(#3478)を修正しました。
- ドキュメントでの $this->load->language についての誤った記述(#3520)を修正しました。
- get_filenames() での再帰処理での不具合、および、 $include_path が使用されているときの、Windowsでの問題、(#3523, #4350)を修正しました。
- XML-RPC クラスで、dateTime.iso8601 が使用できない不具合(#4153)を修正しました。
- Active Record で、or_where_not_in() を使ったときの不具合 (#4171)を修正しました。
- xss_clean() GETのURI文字列にセミコロンが付加されてしまう不具合を修正しました。
- ディレクトリリソースが閉じられない、ディレクトリヘルパでの不具合(#4206)を修正し、小規模な改善を行いました。
- delete_dir() が再帰的に動作しない、FTPライブラリの不具合(#4215)を修正しました。
- set_rules() で配列でないフィールド名およびルールが使用された時のバリデーション(検証)の不具合(#4220)を修正しました。
- 戻り値で取得したDBオブジェクトや複数のDBコネクションにおいて、DBキャッシングが動作しない不具合(#4223)を修正しました。
- アップロードライブラリで、同一のエラーを2回出力する事がある不具合(#4390)を修正しました。
- テーブル別名とテーブルプリフィクスを使って結合(Join)する際のActiveRecordの不具合(#4400)を修正しました。
- DBクラスで $params 引数をチェックする処理の不具合を修正しました。
- HTMLテーブルライブラリで、セルのデータが0のときに、空白のセルとして表示される不具合を修正しました。
- URLヘルパの値の代わりにキーが渡されてしまうlink_tag()の不具合を修正しました。
- DB_result::row() で、MySQLのNULL値の個々のフィールドを返すことができない不具合を修正しました。
- SMTPで送信しようとするemailで、ドットから始まっている行については、ドットの整形処理が動作しない不具合を修正しました。
- DBドライバの display_error() で、エラー処理に使用されない言語および例外オブジェクトが生成されていた不具合を修正しました。
- スラッシュのみからなるURI、例えば 'http://example.com/index.php?//' がPHPエラーを引き起こす不具合(#4413)を修正しました。
- バリデーション(検証)ライブラリの配列から文字列への変換のエラー (#4425) を修正しました。
- デバッグモードが有効な場合に、失敗したトランザクションがロールバックされない不具合 (#4451, #4299, #4339) を修正しました。
- 画像ライブラリの overlay_watermark() で、アルファチャンネルを含むPNG-24形式がサポートされていなかった不具合(#4506)を修正しました。
- ユーザガイドの様々な誤字(#3453, #4364, #4379, #4399, #4408, #4412, #4448, #4488)を修正しました。
Version 1.6.1
リリース日付: 2008年2月12日
SVN リビジョン: 984
- Active Record
- Active Record キャッシングを追加しました。
- Active Record で完全にデータベースプリフィクスを考慮するようにしました。
- データベースドライバ
- MySQLi を使用するときに、クライアントの文字セットおよび照合順序をセットできるようになりました。
- コアの変更
- xss_clean() で、URLエンコードされた文字列の処理をよりインテリジェントに行うようにしました。
- $_SERVER, $_FILES, $_ENV, および $_SESSION をグローバル変数のサニタイズに加えました。
- パスヘルパを追加しました。
- URIクラスの _reindex_segments() の処理を単純化しました。
- 'permitted_uri_chars'設定項目で、開発者が既定の設定の末尾に文字を追加しようとしただけで、エラーになってしまうのを避けるため、既定の設定項目中の'-'をエスケープしました。
- private または protected メソッドがURL経由でアクセスされた際に、コントローラで、404を表示するよう、メソッドの呼び出し処理を変更しました。
- 404エラーで、不正なリクエストで指定されているコントローラおよびメソッド名をログ出力するよう、フレームワークを変更しました。
- ヘルパ
- $source_dir が読み取れない場合に、FALSEを返すよう、ファイルヘルパのget_filenames()を変更しました。
1.6.1の不具合修正
- 検証ルールにおいて、is_numericを非推奨としました。numeric と integer の使用が推奨されます。
- DBフォージで、SQLiteのテーブル作成における不具合(#3379)を修正しました。
- Active Record で完全にデータベースプリフィクスを考慮するようにしました。(#3384)
- DBフォージで、PostgresのFROM句でテーブル名を角括弧で囲んでしまう不正なSQLを出力していた不具合を修正しました。
- WHERE句を追加指定できるよう、Active Record の update() の振る舞いを変更しました。(#3395)
- 特定のPOST変数がPHPの警告を引き起こす不具合(#3396)を修正しました。
- クエリの構築における不具合(#3402)を修正しました。
- プロファイラの$highlight配列でのSQLキーワードの順序を変更したので、ORがORDER BYの前でハイライトされなくなりました。
- MySQLi ドライバで、$this->conn_id がオブジェクトでなく、リソースであるかどうかをチェックしていた不具合(#3404)を修正しました。
- DSN文字列で、データベースに接続する際の不具合(#3419)を修正しました。
- デフォルトコントローラが使用される場合に、ルート済みのセグメントの配列が、1を起点として再インデックスされない不具合(#3445)を修正しました。
- ユーザガイドの様々な誤字を修正しました。
Version 1.6.0
リリース日付: 2008年1月30日
- DBフォージ
- Active Record
- protect_identifiers() を Active Record に追加しました。
- 利用中のデータベースに適合する場合、すべてのActive Recodeのクエリは、バッククォート(バックチック)が付加されるようになりました。
- where_in(), or_where_in(), where_not_in(), or_where_not_in(), not_like() および or_not_like() を Active Recordに追加しました。
- Active Recordのupdate() および delete() 文で、limit()のサポートを追加しました。
- empty_table() と truncate_table() を Active Recordに追加しました。
- Active Recordのdelete() 文で、テーブルの配列を渡せる機能を追加しました。
- count_all_results()メソッドをActive Recordに追加しました。
- select_max(), select_min(), select_avg() および select_sum()をActive Recordに追加しました。
- Active Recordのテーブル結合で、別名(エイリアス)を使用できるようにしました。
- Active Record の like() 句に、ワイルドカードの扱いをコントロールするための第3引数を追加しました。
- Active Record のset()に、データをエスケープしないようにするための第3引数を追加しました。
- where() 句に渡された値が何もない時、"IS NULL"が自動でセットされるよう、振る舞いを変更しました。
- その他のデータベース関連
- MySQLドライバの動作条件が、MySQL 4.1以上になりました。
- DBドライバに、クエリを保存するかどうかを指定できるよう、$this->DB->save_queries フィールドを追加しました。以前は、常に保存されていました。
- データベースプリフィクスを手動で追加するための、$this->db->dbprefix() を追加しました。
- order_by() のオプションとして'random' を追加し、MySQL専用のリスト出力オプションであった、"rand()" を削除しました。
- MySQL データベースバックアップユーティリティで、NULLのフィールドをチェックするようにしました。
- db->list_table() メソッドのパラメータに "constrain_by_prefix" を追加しました。TRUEをセットした場合、現在のプリフィクスが付加されているテーブル名のみが結果に含まれるようになります。
- Active Record で、次のものが廃止予定になりました: getwhere() が get_where()の旧形式とされました; groupby() が group_by()の旧形式とされました; havingor() が having_or()の旧形式とされました; orderby() が order_byの旧形式とされました; orwhere() が or_where()の旧形式とされました; そして orlike() が or_like()の旧形式とされました。
- csv_from_result() を、いままでよりも、RFC 4180 の基本ルールにそってCSVデータを出力するように変更しました。
- データベースの設定として、 'char_set' および 'dbcollat' を追加しました。これにより、明示的にクライアントのコミュニケーションが適切に設定できます。
- 設定から'active_r' を削除し、グローバル変数の $active_record 設定と置き換えました。 この設定項目の使われ方が本質的にはグローバルであるというところに、より適合する形になりました。(#1834)
- コアの変更
- 複数のビューをロードできるようになりました。ビューの内容は、ロードした順に出力に追加されます。
- モデルの自動読み込み(オートロード)機能が追加されました。
- よりわかりやすくするため、URIおよびルータクラスが再編成されました。
- 特定の エクステンション / ライブラリがない古いPHPのバージョンやPHPの環境のため、関数をオーバーライドする事が可能な、Compat.phpを追加しました。
- プロファイラの出力に、メモリ使用量、GET、URIストリングデータ、個々のクエリの実行時間を加えました。
- スカッフォールディングを、非推奨としました。
- クラスプラットフォームで、信頼性がある ファイル/フォルダの書き込みテスト手段を提供するため、Common.phpに、is_really_writable()を追加しました。
- ライブラリ
- 拡張が可能なように、モデルのロード手順を変更しました。
- MCRYPT_MODE_CBCモードを使用する際に、中間者攻撃(man-in-the-middle attack)に対しての防衛ができるよう、暗号化ライブラリを強化しました。
- フラッシュデータ変数、 session_idの再生成および、設定可能なセッションのアップデート時間をセッションクラスに追加しました。
- セッションクラスから、'last_visit' を削除しました。
- valid_ip の検証エラーに対応した言語エントリを追加しました。
- Modified バリデーション(検証)クラスのprep_for_form()を、配列を受け取れるようにし、POST配列の検証 (コールバック経由のみ)をサポートするように変更しました。
- バリデーション(検証) ライブラリに"integer"ルールを追加しました。
- バリデーション(検証) ライブラリにvalid_base64()を追加しました。
- 画像操作ライブラリのclear()の記述をドキュメントに追加しました。
- "required" ルールによって、ユーザ定義のコールバックが呼び出されないように、振る舞いを変更しました。
- アップロードクラスの $_FILES のエラーメッセージをより正確にするよう変更しました。
- Emailライブラリのセーフモードおよび認証チェックをコンストラクタに移動しました。
- ビューの変数名との衝突を避けるため、ローダクラスの _ci_load() メソッドの変数名を変更しました。
- CSVのMIMEタイプの、さらにいくつかのバリエーションを追加しました。
- XML-RPC サーバライブラリで、いまのところまだ利用できない 'system.multicall' 以外の、'system' メソッドを利用可能にしました。
- ヘルパとプラグイン
- HTMLヘルパにlink_tag()を追加しました。
- HTMLヘルパにimg()を追加しました。
- "拡張した" ヘルパを使えるようになりました。
- emailヘルパ をコアヘルパに追加しました。
- 文字列ヘルパに、 strip_quotes()関数を追加しました。
- 文字列ヘルパにreduce_multiples()関数を追加しました。
- 文字列ヘルパに、quotes_to_entities()関数を追加しました。
- form_fieldset(), form_fieldset_close(), form_label(), および form_reset() 関数をFormヘルパに追加しました。
- form_open()で外部のURLをサポートするようにしました。
- 互換性のない関数のため、MySQLiのdb_backupのサポートを取りやめました。
- Javascript カレンダープラグインで、ハードコードされた値を使う代わりに、月と日をカレンダー言語ファイルのものを使うようにし、国際対応にしました。
- ドキュメントの変更
- コミュニティで独自のドキュメントを書くのに使用できるよう、ドキュメントを書くのセクションを追加しました。
- すべてのユーザマニュアルのページにタイトルを追加しました。
- 正当なHTMLのため、ユーザガイドの <html> に属性を追加しました。
- Zip圧縮クラスをユーザガイドの目次に追加しました。
- ユーザガイドのメニューのjavascriptの部分を外部ファイルに移動しました。
- Active Recordのdistinct()の記述をドキュメントに追加しました。
- 日付ヘルパのtimezones()関数についての記述をドキュメントに追加しました。
- セッションクラスのunset_userdataに関する記述をドキュメントに追加しました。
- データベース設定 ページに、2つの設定項目についての記述を追加しました。
1.6.0の不具合修正
- 返されたデータベースオブジェクトがある場合に、同一アプリケーションで、$CI->dbが利用できない不具合(#1813) を修正しました。
- 明示的なメソッドが指定されないコントローラにルーティングされた場合、$this->uri->rsegments の配列に、'index' が含まれていない不具合(#1842)を修正しました。
- word_limiter() でホワイトスペースが保持されない不具合(#1872)を修正しました。
- csv_from_result()で、内容に区切り文字を含む場合にファイルが壊れる不具合(#1890)を修正しました。
- Emailクラスのclean_email()メソッドの不具合(#2542)を、数値以外の / 連続しない 配列のキーを指定できるように修正しました。
- 'global_xss_filtering' が有効な場合の_html_entity_decode_callback()の不具合(#2545)を修正しました。
- パーサクラスで、数値データが無視される不具合(#2668)を修正しました。
- "前のページへ" のページネーションリンクが、最初のページで表示されてしまう不具合(#2679)を修正しました。
- _object_to_arrayで、inserts および updates のいくつかの型が壊れてしまう不具合(#2702)を修正しました。
- PHP 4 環境の SQLiteドライバの不具合(#2732)を修正しました。
- ページネーションの不具合(#2754)について、正の数でない数値リンクをスキャンするように修正しました。
- セッションライブラリでスペースで終わるユーザエージェントで、ユーザエージェントのマッチ処理が失敗する不具合(#2762)を修正しました。
- postgre および sqlite ドライバで、$field_names[] を $Ffield_names[]としていた不具合(#2784)を修正しました。
- タイポグラフィヘルパで、文字列がタグを含む場合に、余分な段落タグを生成してしまう不具合(#2810)を修正しました。
- サブフォルダのコントローラ、メソッドに引数が渡されるとき、不正確にシフトされてしまい、第3引数の値が欠落してしまう不具合(#2849) を修正しました。
- 画像クラスで、誤った変数を参照していた不具合(#2858)を修正しました。
- _pi でなく _plugin としてプラグインファイルをロードする不具合(#2875)を修正しました。
- ファイルヘルパのget_filenames()で、各呼び出しの度に配列がクリアされないの不具合(#2912)を修正しました。
- スラッシュを伴う場合に、highlight_phrase()でエラーが起こる不具合(#2974)を修正しました。
- 暗号化ライブラリの不具合(#3003)を、MCRYPT_MODE_ECB以外のモードをサポートするよう修正しました。
- ユーザエージェントライブラリのlanguages()で、2つ以上の言語が報告されない不具合(#3015)を修正しました。
- Emailライブラリで、いくつかのタイムゾーンが誤って計算される不具合(#3017)を修正しました。
- 画像ライブラリのclear()で、master_dimがリセットされない不具合(#3024)を修正しました。
- テキストヘルパのhighlight_code()で、PHPタグが正しく取り扱われない不具合(#3156)を修正しました。
- num_rowsがOracleで動作しない不具合(#3166)を修正しました。
- PHP 4環境で、特定のライブラリのオートロードが正しく機能しない不具合(#3175)を修正しました。
- タイポグラフィヘルパで、順序なしリストが、"un"として[訳注:HTMLタグのulでなく、誤ったタグで]リストアップされていた不具合(#3267)を修正しました。
- ルータでパスに'/'を残す場合がある不具合(#3268)を修正しました。
- Emailクラスで、いくつかの文字セットについて、誤ったContent-Transfer-Encodingが送出されてしまう不具合(#3279) を修正しました。
- リクエストされたURIが、ルーティング済みのURIよりも多くのセグメントを含む場合に、rsegment 配列が正しくセットされない不具合(#3284)を修正しました。
- 出力クラスの _display_cache() で、$CFGが余分にロードされていた個所を削除しました。(#3285)
- モデルのロードが余分に呼び出される個所を削除しました。(#3286)
- CIのグローバル変数の値を無効化する可能性がある、入力クラスのグローバル変数のサニタイズに関する不具合(#3310)を修正しました。
- ファイルヘルパの delete_files() で、トップレベルのパスが削除されてしまう不具合(#3314)を修正しました。
- スマイリーヘルパで、未定義の変数が返される不具合(#3328)を修正しました。
- FTPクラスで、比較が行われない不具合(#3330)を修正しました。
- プロファイラで、使用されていないパラメータを削除しました。(#3332)
- データベースドライバで、num_rows プロパティが更新されない不具合を修正しました。
- アップロードライブラリで、allowed_filesが定義されていなかった不具合を修正しました。
- テキストヘルパの word_wrap()で、誤ってオブジェクトを参照してた不具合を修正しました。
- バリデーション(検証)で、valid_ip()が適切に呼び出されない不具合を修正しました。
- バリデーション(検証) で、チェックボックスに対応する個別のエラーメッセージがサポートされていなかった不具合を修正しました。
- captchaで、不正なPHP関数を呼び出していた不具合を修正しました。
- クッキーヘルパの "set_cookie" 関数の設定を受け取っていなかった不具合を修正しました。
- バリデーションで、コールバックを必要であると設定していなくても、コールバックが要求される不具合を修正しました。
- XML-RPCライブラリの不具合を修正しました。これにより、型が指定された場合、デフォルトの型に関して、よりインテリジェントな決定がされるようになります。
- Emailライブラリのドキュメントで、カンマ区切りのemailについてのサンプルコードを修正しました。
- カレンダライブラリの、前の月/次の月 のリンクを表示するサンプルコードを修正しました。
- データベースライブラリの言語ファイルの誤字を修正しました。
- 画像ライブラリの言語ファイルの誤字 "suppor" を "support" に修正しました。
- XML RPCのサンプルコードを修正しました。
- ユーザエージェントライブラリのaccept_charset()のサンプルコードを修正しました。
- docblock コメントで、CodeIgniter が CodeIgnitorとなっていた誤字を修正しました。
- 文字列ヘルパ の誤字を修正しました(uniquidをuniqidに変更)。
- emailクラスの言語ファイルの誤字(email_attachment_unredable, email_filed_smtp_login), およびFTP クラスの言語ファイルの誤字(ftp_unable_to_remame)を修正しました。
- アップロードライブラリにstripslashes()を追加しました。
- 言語ファイルの一連の文法エラーとスペルミスを修正しました。
- 様々なユーザガイドの誤字を修正しました。
Version 1.5.4
リリース日付: 2007年7月12日
- ユーザ定義言語ファイルに自動読み込みオプションを追加しました。
- 入力クラスのstripslashes()に、magic quotesがONのときに、フレームワークで、データが常にスラッシュ除去されるよう、_clean_input_data()を追加しました。
- プロファイラで、配列を文字列に展開して表示するようにしました。
- application/config/mimes.phpに、さらにいくつかのMIMEタイプを追加しました。
- 入力ライブラリに、filename_security()メソッドを追加しました。
- 語形変換ヘルパのsingular()に、"s"で終わる単語についての処理を補うよう、さらにいくつかの引数を追加しました。またpluralize()に、強制処理させるための引数を追加しました。
- 設定ファイルに、$config['charset']を追加しました。規定値は、'UTF-8'で、いくつかの文字列を取り扱う関数で使用されます。
- MSSQL の insert_id() を修正しました。
- DBのtrans_status() メソッドの、論理の誤りを修正しました。誤って、失敗した場合にTRUEを返し、成功した場合にFALSEを返していました。
- 拡張されたクラスの複数の読み込みを許可していた不具合を修正しました。
- ユーザが明示的に設定していた場合でも、誤ってサーバのフルパスを識別しようとしていた、ブートストラップファイルの不具合を修正しました。
- MySQL ドライバの、escape_str()メソッドの不具合を修正しました。
- カレンダライブラリの誤字を修正しました。
- rpcs.php ライブラリの誤字を修正しました。
- Zipライブラリの不具合を修正しました。PC Zipファイルで、Mac OS Xとの互換性が提供されます。
- 最適化のために、スカッフォールディング向けのルートをルータで無視していた不具合を修正しました。
- IPの検証の不具合を修正しました。
- プロファイラの出力で、POSTキーを表示するときの不具合を修正しました。
- プロファイラの出力で、HTMLとして解釈できる文字をともなうクエリを表示するときの不具合を修正しました。
- Emailクラスのprint debuggerで、デバッグ出力において、HTMLとして解釈できる文字が含まれる場合の不具合を修正しました。
- quoted-printable MIMEタイプのHTMLメールのContent-Transfer-Encodingの不具合を修正しました。
- GET または POST データ経由でPHPのスーパーグローバルをセットする事により、そのひとつが、あるPHPのスーパーグローバルの値を無効化してしまう可能性がある不具合を修正しました。
- PostgreSQL ドライバの insert_id()メソッドの、関数の未定義エラーを修正しました。
- 様々なドキュメントの誤字を修正しました。
- ユーザガイドで記述がなかった、文字列ヘルパ の2つの関数:trim_slashes() と reduce_double_slashes()についての記述をドキュメントに追加しました。
- ドキュメントは、XHTML 1 transitionalの妥当な文書になりました。
- IEのexpression()でできることについて考慮するようXSS フィルタリングをアップデートし、潜在的な脆弱性を回避するための、ある削除処理を改善しました。
- ルータで、クエリ文字列を有効にできるようにし、コントローラトリガおよびメソッドトリガの値は、ファイル名の包含に関するセキュリティについてサニタイズするようにしました。
- アップロードライブラリのis_image()メソッドで、Windows IE 6/7 のMIMEを取り扱う際の一般的でない挙動を考慮するようにしました。
- XSSクリーニング処理のパフォーマンスを改善し、PHP 5.2の新しいPCREのバックトラックと再帰処理制限に対応するようにしました。
- URLヘルパで、数値が渡された場合に、$titleを文字列にキャストするようにしました。
- Modified Formヘルパのform_dropdown()で、選択肢の配列のキーと値を文字列にキャストするようにし、'selected'を適切にセットするために、数値を受け入れることができるようにしました。
- 各所で使われていた is_numeric() は、ピリオドが通ってしまうため、使わないようにしました。 ctype_digit()は、互換性の問題があり、いくつかの環境で信頼性が得られなかったため、次の正規表現を代わりに使用します: preg_match("/[^0-9]/", $n)
- 非推奨: APPVER は、非推奨となり、明確さのため、CI_VERSIONに置き換えられました。
Version 1.5.3
リリース日付: 2007年4月15日
- プロファイラで配列を文字列として展開して表示するようにしました。
- Code Igniter への参照を CodeIgniter に変更しました。
- pMachine への参照を EllisLab に変更しました。
- 文字列ヘルパのrepeater関数の不具合を修正しました。
- ODBCドライバの不具合を修正しました。
- result_array()の、結果が生成されないときに空の配列を返す不具合を修正しました。
- URLヘルパのredirect関数の不具合を修正しました。
- ローダの未定義の変数を修正しました。
- Postgreドライバのバージョンバグを修正しました。
- Formヘルパのtextarea関数で、文字列を使用する際の不具合を修正しました。
- ドキュメントの誤字を修正しました。
Version 1.5.2
リリース日付: 2007年2月13日
- ダウンロードページにsubversionの情報を追加しました。
- HTMLテーブルライブラリで、キャプションをサポートするようにしました。
- Internet Explorerでダウンロードではなく、読み込みが行われてしまうdownload_helperの不具合を修正しました。
- Active Record の Join メソッドで、テーブルプリフィクスが考慮されない不具合を修正しました。
- 入力およびルータクラスのエラーメッセージからエスケープされていない変数を削除しました。
- ローダで、ライブラリが2回ロードされたときに、エラーになっていた不具合を修正しました。デバッグメッセージは、表示されずに、ログ出力されるようになりました。
- Formヘルパで、textareaにvalue属性をセットしていた不具合を修正しました。
- 画像ライブラリで、同一サイズの画像のリサイズが無視されていた不具合を修正しました。
- ドキュメントのいくつかの誤字を修正しました。
Version 1.5.1
リリース日付: 2006年11月23日
- $this->load->library メソッドで、ライブラリの配列を指定できるようにしました。
- 小文字または大文字のファイルで、ユーザ定義ライブラリ名をつけられるようにしました。
- 出力バッファリングに関する不具合を修正しました。
- active record クラスで、クエリをコンパイルした後にクエリデータをリセットしていなかった不具合を修正しました。
- コントローラで、エラーを差し止めていた不具合を修正しました。
- 設定ファイルが存在しない場合にループが起こってしまう問題を修正しました。
- 第3引数をTRUEに設定して複数のモデルをロードした際に起こる不具合を修正しました。
- 入力のサニタイズメソッドで、グローバル変数が適切にクリアされていなかった見落としを修正しました。
- Oracle DB ドライバのいくつかの不具合を修正しました。
- MySQLi result ドライバの誤って名付けられた変数を修正しました。
- ドキュメントのいくつかの誤字を修正しました。
Version 1.5.0.1
リリース日付: 2006年10月31日
- 重複したヘルパおよびクラスの読み込みが停止されない問題を修正しました。
- word_wrap()ヘルパ関数の不具合を修正しました。
- プロファイラクラスの正しくない16進カラーコードを修正しました。
- ユーザガイドの壊れた画像を修正しました。
Version 1.5.0
リリース日付: 2006年10月30日
- データベースユーティリティクラスを追加しました。データベースのバックアップ、データベース結果からのCSVまたはXMLの生成、その他の様々な機能があります。
- データベースキャシュクラスを追加しました。
- トランザクションのサポートをデータベースクラスに加えました。
- プロファイラクラスを追加しました。実行時間のベンチマーク、クエリ、POSTデータのレポートをページの一番下で表示します。
- ユーザエージェントライブラリを追加しました。これにより、ブラウザ、ロボット、モバイル機器の識別ができます。
- HTMLテーブルクラスを追加しました。データベースの結果の配列から、テーブルを生成することができます。
- Zip圧縮ライブラリを追加しました。
- FTPライブラリを追加しました。
- ライブラリの拡張およびコアクラスの拡張が可能になり、加えて、それらの置き換えも可能になりました。
- モデルをサブフォルダの中に設置することが出来るようになりました。
- ダウンロードヘルパを追加しました。
- simple_query()メソッドをデータベースクラスに追加しました。
- standard_date()関数を日付ヘルパに追加しました。
- $query->free_result()メソッドをデータベースクラスに追加しました。
- $query->list_fields()メソッドをデータベースクラスに追加しました。
- $this->db->platform()メソッドを追加しました。
- 新しいファイルヘルパ:get_filenames() を追加しました。
- 新しいヘルパ: スマイリー(顔文字)ヘルパを追加しました。
- <ul> および <ol> リストのサポートをHTMLヘルパに加えました。
- ショートタグをオン・ザ・フライで書き換えられるようにしました。ショートタグをサポートしないサーバでは、ショートタグは通常のPHPステートメントに変換されます。これにより、サーバでショートタグがサポートされているかを考慮することなく、クリーンな構文が利用できます。
- "application" フォルダのリネームまたは再配置ができるようになりました。
- アップロードクラスでより完全に初期化がおこなわれるようにしたので、すべてのフィールドがリセットされるようになりました。
- PHPネイティブのis_numeric関数を使用した"is_numeric"ルールがバリデーションに追加されました。
- 設定項目 $config['uri_protocol'] がAUTOにセットされていた場合に、URIの取り扱いをより信頼性のあるよう改善しました。
- コントローラクラスの大部分のメソッドをローダクラスに移動し、PHP5で動作させる場合に、コントローラの定義済みメソッド名がより少なくなるようにしました。
- $query->result() が結果を生成しない場合に、空の配列を返すよう、DB Result クラスを変更しました。
- 入力クラスのinput->cookie()およびinput->post()メソッドを、XSS フィルタで使用される配列に、cookieを含むことができるように変更しました。
- ユーザガイドに記述されていなかったバリデーション(検証)クラスの3つのメソッド: set_select(), set_radio(), および set_checkbox() に関する記述をドキュメントに追加しました。
- SMTP の Helo データに関するEmailクラスの不具合を修正しました。
- ワードラップヘルパおよびEmailクラスの不具合を修正しました。
- バリデーション(検証)クラスの不具合を修正しました。
- タイポグラフィーヘルパで、不正にブロックレベル要素を段落タグで囲んでいた不具合を修正しました。
- form_prep()関数で、二重にエンティティをエンコードしていた問題を修正しました。
- いくつかのバージョンのPHPに影響する、出力バッファがネストされたときの不具合を修正しました。
- PHPのマジックメソッド __get() または __set() をモデルまたはコントローラで使用すると、CIの動作が停止する不具合を修正しました。
- URLに負の数が設定されるページネーションの不具合を修正しました。
- ローダクラスが拡張できない見落としを修正しました。
- メソッドがプライベートではないため、_get_config() を get_config() に変更しました。
- "init" フォルダを非推奨としました。 初期化は自動的に行われるようになりました。ドキュメントをご覧ください。
- $this->db->field_names() は非推奨になりました。$this->db->list_fields() を使用してください。
- config.php ファイルの設定項目 $config['log_errors']は非推奨になりました。オフにするためには、代わりに、$config['log_threshold']に"0"をセットできます。
Version 1.4.1
リリース日付: 2006年9月21日
- URIセグメントを直接ユーザが作成したメソッド呼び出しのパラメータとして渡せる新しい機能を追加しました。詳しくは、コントローラのページをご覧ください。
- 作成したコントローラで、出力クラスが生成した最終の出力を受け取ることができる_output()という名前のメソッドを追加しました。詳しくは、コントローラのページをご覧ください。
- URIクラスに、URIルーティング機能を使って再ルーティングされたURIセグメントを、取得して操作するための、いくつかの新しいメソッドを追加しました。これまでは、URIクラスでは、再ルーティングされたURIセグメントにアクセスすることができませんでしたが、これからは、可能になります。
- サーバヘッダをセットすることができる$this->output->set_header() メソッドを追加しました。
- application フォルダに、独自のプラグイン、ヘルパ、および言語フォルダを配置できるように、プラグイン、ヘルパ、言語クラスを変更しました。これまでは、インストール全体で、常にグローバルに取り扱う必要がありました。アプリケーションフォルダに、何らかのそれらのリソースが設置された場合、グローバルのそれに代わって使用されます。
- 語形変換ヘルパを追加しました。
- 配列ヘルパに、element()関数を追加しました。
- active record のorderby() メソッドに、RAND()を追加しました。
- 入力クラスにも、クッキーを読み取るメソッドがありますが、delete_cookie() と get_cookie()をクッキーヘルパに追加しました。
- Oracle データベースドライバを追加しました。(テスト中のため、いくつかの不具合がある可能性があります)
- テンプレートパーサクラスを、擬似変数とPHP変数を混合して使用する事ができるようにしました。
- 設定ファイルに、出力圧縮の項目を追加しました。
- db->escape() メソッドから is_numeric によるチェックを削除しました。
- MySQLiで、適切なエラーデータを含まずエラーメッセージが表示される不具合を修正しました。
- 明示的に指定した代替ヘッダが無視される、Emailクラスの不具合を修正しました。
- get_config() 関数で、例外クラスが呼ばれる時に、問題が発生してPHPエラーが起こっていた不具合を修正しました。
- クッキーヘルパで、設定ファイルのクッキー設定が使用されていなかった見落としを修正しました。
- アップロードクラスの見落としを修正しました。1.4 の変更履歴で述べられていた項目がありませんでした。
- Emailのバッチ送信の時に、メールの添付をリセットできるよう、いくつかのコードを追加しました。
- application/scriptsフォルダは非推奨になりました。レガシーユーザのために、今後も動作しますが、 ライブラリまたはモデルを代わりに作成するのを推奨します。もともとは、ユーザライブラリやモデルがCIにない時に追加されたものですが、もう必要ではなくなりました。
- autoload.php ファイルの項目$autoload['core']は非推奨になりました。今後は、代わりに $autoload['libraries']を使用してください。
- 次のデータベースメソッドが非推奨になりました: $this->db->smart_escape_str() および $this->db->fields().
Version 1.4.0
リリース日付: 2006年9月17日
- コアのファイルをハックすることなく、フレームワークの内部動作に踏み込んで変更することができるフック機能を追加しました。
- サブフォルダの中にコントローラファイルを構成できるようにしました。 Marcoのこの機能(および次の2つの機能)についての提案を称えます。
- ルーティングルールで、正規表現をサポートするようにしました。
- 作成したコントローラの中で、メソッド呼び出しを再マッピングすることができるようになりました。
- ユーザ作成のクラスで、コアシステムクラスを置き換えることができるようになりました。
- % 文字をURLで使用できるようになりました。
- anchor()ヘルパ関数を使って、完全なURLを出力できるようにしました。
- file_write()ヘルパにモードを指定するパラメータを追加しました。
- Postgre ドライバで、ポート番号を変更できるようにしました。
- "許可されたURI文字(allowed URI characters)"のリストをルータクラスから、設定ファイルに移動しました。
- MIMEタイプの配列をアップロードクラスから、applications/config/フォルダの中の、専用のファイルに移動しました。
- do_upload()を呼び出す時に、アップロードするファイル名を指定するよう、アップロードクラスを変更しました。
- 設定ライブラリを、自動的に設定ファイルをロードできるように変更し、(複数の設定を使用する時に衝突を避けるため)別々のインデックスを付けて、設定ファイルを割り当てられるようにしました。
- 異なる環境で、URLがより高い信頼性のもとで動作するよう、URIプロトコルのコードに、さらに選択肢を追加しました。
- form_open()ヘルパでGETメソッドを利用できるようにしました。
- MySQLiのexecute()メソッドに、コネクション切断エラーを避けるためいくつかのコードを追加して変更しました。
- SQLiteドライバで、結果をオブジェクトとして返す前に、オブジェクトをチェックするように変更しました。サポートされてない場合は、配列を返します。
- 同一のモデルを複数ロードできるよう、モデル読み込みメソッドを変更しました。
- MSSQLドライバを変更し、シングルクォートがエスケープされるようになりました。
- Postgre および ODBC ドライバの互換性の改善のための変更を行いました。
- URLセグメントを小文字に変換する strtolower() の呼び出しを削除しました。
- PHP 4.4.1 で干渉していたいくつかの参照を互換性のために削除しました。
- Postgreでは必要でなかったため、バックチックをPostgreクラスから削除しました。
- 出力クラスのdisplay()をプライベートメソッドであるを明確にするため、_display()に名称を変更しました。
- 同名のネイティブPHP関数と名前衝突するため、hash()を非推奨としました。代わりにdohash()を使用してください。
- 入力クラスで、GET変数をクリアしていなかった不具合を修正しました。
- セグメントのマッチの終わりが、長い範囲になってしまうルータの不具合を修正しました。
- 複数の別々のデータベース呼び出しができない不具合を修正しました。
- 言語ファイルをロードする際に、メッセージ "ファイルにデータがありません(file contains no data)" を生成する不具合を修正しました。
- XSSフィルタリング機能が、不意に特定の語を変更してしまうことによるセッションの不具合を修正しました。
- データベースプリフィクス機能を使用している時の、プリフィクスの欠落を修正しました。
- カレンダークラスの誤字 (cal_november) を修正しました。
- form_checkbox()ヘルパの不具合を修正しました。
- 2番目のURIセグメントがクラス名と同じであることが許可されていた不具合を修正しました。
- データベース初期化メソッドの評価関連の不具合を修正しました。
- 言語クラスのエラーメッセージの一つの小さな不具合を修正しました。
- 日付ヘルパのtimespan関数の不具合を修正しました。
- DBドライバクラスの未定義の変数を修正しました。
- DBクラスで、バインディングで置換される値として使用するドル記号が正規表現の後方参照として取り扱われる不具合を修正しました。
- set_hash()関数で、MD5が使用されない不具合を修正しました。
- ユニットテストクラスの1対の不具合を修正しました。
- バリデーション(検証)クラスの間違った名前の変数を修正しました。
- URIクラスの間違った名前の変数を修正しました。
- 設定クラスで、ベースURLが適切に呼び出されていなかった不具合を修正しました。
- バリデーション(検証)クラスで、フィールドが空の場合に、コールバックが起こらなかった不具合を修正しました。
- MySQLiで、スカッフォールディングが適切に動作しない問題を修正しました。
- MS SQL のいくつかの不具合を修正しました。
- ドキュメントのいくつかの誤字を修正しました。
Version 1.3.3
リリース日付: 2006年6月1日
- このバージョンで、モデルは、自動的にデータベースに接続しなくなりました。詳しくはこちら。
- セッション関連のクエリを実行する際に、セッションクラスで、AcitveRecordを使用するようにしました。これまでは、クエリは、MySQLの構文になっていました。
- alternator()関数を引数なしで呼び出し場合、再初期化するようにし、複数回呼び出せるようにしました。
- active recordの"having" メソッドの不具合を修正しました。
- バリデーション(検証)クラスで、required の場合に、チェックボックスが無視される問題を修正しました。
- word_limiter() ヘルパ関数の不具合を修正しました。最初の単語が切り取られていました。
- xss_clean関数で、いくつかのバージョンに影響するhtml_entity_decodeのPHPの不具合を修正しました。
- 一つのコントローラで、ルールを2回セットできないバリデーションの不具合を修正しました。
- 動的に読み込んだ言語を使用しないカレンダーの不具合を修正しました。
- LIKEを使ったWHERE句を使用する時のactive recordクラスの不具合を修正しました。
- セキュリティヘルパのhash()の不具合を修正しました。
- いくつかの誤字を修正しました。
Version 1.3.2
リリース日付: 2006年4月17日
- "required"がフィールドに明示的にセット「されていなかった」場合、その他のテストが無視されるという、バリデーションの振る舞いを変更しました。
- コントローラクラスで、メインシステムフォルダでなく、ローカルの"init"フォルダを見ていた不具合を修正しました。
- init_pagination ファイルの不具合を修正しました。$config 設定項目が正常にセットされませんでした。
- オートタイポグラフィヘルパで、一貫しない振る舞いを引き起こしていた不具合を修正しました。
- モデルクラスの一対の不具合を修正しました。
- ドキュメントのいくつかの誤字や誤りを修正しました。
Version 1.3.1
リリース日付: 2006年4月11日
- ユニットテストライブラリを追加しました。
- データベースメソッドのinsert() および update()にオブジェクトを渡せるようにしました。 この機能により、(特に)作成したモデルクラスの変数を使ってクエリを実行できるようになります。詳しくはモデルのページをご覧ください。
- ビュー読み込みメソッド: $this->load->view('my_view', $object); でオブジェクトを渡せるようになりました。
- getwhereメソッドをActive Record クラスに追加しました。
- count_allメソッドをActive Record クラスに追加しました。
- スカッフォールディング用の言語ファイルを追加し、指定したテーブルに行がない場合に起こる不具合を修正しました。
- 最後に実行したクエリを閲覧できるよう、$this->db->last_query() を追加しました。
- 互換性向上のため、アップロードクラスに新しいMIMEタイプを追加しました。
- PHPでショートタグとして解釈されるXMLタグが含まれるキャッシュファイルについてのPHPエラーを回避するため、キャッシュファイルの読み取り方法を変更しました。
- 2つのactive recordメソッド(where および orderby)の不具合を修正しました。
- realpath()がfalseを返す時の画像ライブラリの不具合を修正しました。
- モデルで、ライブラリを使用できない不具合を修正しました。
- バリデーション(検証)クラスの "exact_length" メソッドの不具合を修正しました。
- ユーザガイドのいくつかの誤字を修正しました。
Version 1.3
リリース日付: 2006年4月3日
- モデルをサポートするようになりました。
- 追加の RDBMS (Postgre, MySQLi, etc.)をサポートするよう、データベースライブラリを再設計しました。
- 簡単な構文で多くの種類の問合せができるよう、また、JOINなどのようなより進んだ機能を有効にするため、Active Record クラスを再設計しました。
- データベースクラスで、PHPネイティブ関数の呼び出しができるようになりました。
- コントローラで、プライベートメソッドをサポートするようにしました。アンダースコア始まる名前のコントローラのメソッドはすべて、URIリクエストでは、呼び出されません。
- $this->load->library()を使う時に、ユーザ定義のコアライブラリに、独自の初期化パラメータを渡せるようにしました。
- 通常のクエリ文字列URLでも動作するようにしました。これらは、設定ファイルでオプションで有効にできます。
- URLに付加できる"サフィックス(suffix)"を指定出来るようにしました。例えば、.htmlをURLに付加することができ、静的ファイルのように見せることができます。この機能は、設定ファイルで有効にします。
- ネイティブのPHPエラーに使用する新しいエラーテンプレートを追加しました。
- 文字列ヘルパに、"alternator"関数を追加しました。
- 入力クラスからスラッシュ付加処理を削除しました。良く議論した結果、この機能をなくしました。
- IDEやphpDocumenterのようなツールがコメントを収集できるよう、スクリプトのコメントスタイルをPEAR標準に変更しました。
- ユーザ開発のクラスとの衝突を避けるため、クラスと関数のネームスペースを改善しました。衝突回避のため、CodeIgniterの全クラスはCI_というプリフィクスが付き、 すべてのコントローラのメソッドは、_ciというプリフィクスが付きます。定義済みのメソッド名については、こちらにあります。
- PHP5では、より少ないリソースでオブジェクトを管理できる素晴らしい方法が利用できるため、"CI" スーパーオブジェクトの参照方法をPHP4か5のどちらが実行されているかによって変えるように、再設計しました。
- 非推奨: $this->db->use_table() は、非推奨になりました。これについては、Active Recordのページでご覧ください。
- 非推奨: $this->db->smart_escape_str() は、非推奨になりました。$this->db->escape()を代わりに使用してください。
- 例外ハンドラで、いくつかのPHPエラーが表示されない不具合を修正しました。
- URIクラスの誤字を修正しました。$this->total_segment() は複数形にすべきです: $this->total_segments()
- 既定のカレンダーテンプレートのいくつかの誤字を修正しました。
- ユーザガイドのいくつかの誤字を修正しました。
Version 1.2
リリース日付: 2006年3月21日
- ベータテストで明らかになったスコープの問題を解決するため、フレームワーク内部の一部を再設計しました。この問題は、コンストラクタで、クラスをインスタンス化する際に、とくに、それらのクラスが順次コンストラクタで処理を行う際に、もっともよく明らかになります。
- ユーザ定義クラスの中で、メインのCodeigniterオブジェクトにアクセスできるよう、get_instance() というグローバル関数を追加しました。
- 新しいファイルヘルパを追加しました: delete_files()
- 新しいURL ヘルパを追加しました: base_url(), index_page()
- ユーザ定義の コアライブラリ を作成し、ローカルのapplicationディレクトリに保管できるようにしました。
- 与えられたファイル名のファイルに追加するのではなく、上書きできるよう、overwrite(上書き) オプションをアップロードクラスに追加しました。
- Javascript のカレンダープラグインを追加しました。
- ユーザガイドに検索機能を追加しました。注意: これはGoogleを利用して実行されますが、これを書いている時点では、ドキュメントのページはまだ登録されていません。
- あるタグのペアの中に別のタグを入れ子にできるよう、パーサクラスをアップデートしました。
- データベースクラスの "where" メソッドの不具合を修正しました。
- ユーザ作成の設定ファイルを自動読み込みできない不具合を修正しました。
- 置き換えデータの中のクエスチョンマークが有効にならない、mysql クラスのバインド機能の不具合を修正しました。
- xss_clean 関数の不具合を修正しました。
Version Beta 1.1
リリース日付: 2006年3月10日
- カレンダークラスを追加しました。
- 単一の共有のCodeIgniterのバックエンドでの複数アプリケーションの実行をサポートしました。
- "uri protocol" 変数を index.php ファイルから config.php ファイルに移動しました。
- コンストラクタの処理中に関数のコールが失敗する問題を修正しました。
- コンストラクタの処理中に $this->load->library メソッドが動作しない問題を修正しました。
- 自動読み込み処理でセッションクラスが詠みこまれるときに発生するバグを修正しました。
- E_STRICT定数をサポートしないPHPのバージョンで発生するバグを修正しました。
- form_radio 関数 (フォームヘルパ) のデータ型に関するエラーを修正しました。
- バリデーション(検証)クラスから xss_clean メソッドの呼び出しに失敗するバグを修正しました。
- $conf rather than $config ではなく、誤って$confとなっていたcookie関連の設定項目名を修正しました。
- スカッフォールディングでのページネーションの問題を修正しました。
- mysql クラスの "where" メソッドのバグを修正しました。
- 重複するスラッシュを取り除く、いつかのコードでの正規表現の問題を修正しました。
- HTML ヘルパの br() 関数のバグを修正しました。
- Form ヘルパの form_dropdown 関数の文法ミスを修正しました。
- form ヘルパから"style" 属性を取り除きました。
- ドキュメントを更新しました。"次へ/前へ" のリンクを各ページに追加し、多くの誤字を修正しました。
Version Beta 1.0
リリース日付: 2006年2月28日
最初のパブリックリリースバージョン。