OSDN Git Service

- fixed bug newly introduced E_DEPRECATED in PHP 5.3.0 emits Fatal Error.
[ethna/ethna.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 4032dfd..ccd2090 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 * 変更点一覧
 
-** 2.5.0-dev
+** 2.5.0
+
+*** features
+
+- フォーム定義に関する変更
+-- フォーム定義を動的に変更するためのAPIをさらに追加
+-- Ethna_ActionForm#setFormDef_ViewHelper
+- APPID_Controller.php のスケルトンに継承を想定したメソッドを追加
+-- skel/app.controller.php _setDefaultTemplateEngin
+- add-project 時の www 以下に出来るエントリポイントから APPID_Controller へのパスを相対パスに変更
+- ethna コマンドの挙動変更
+-- ethna help コマンドを追加
+- 指定 Action が存在しない場合い、app/action 以下を全て include する仕様を変更
+- add-project -b オプションの挙動変更
+- controller での smarty_xx_plugin の機能を削除
+-- フォームヘルパのテキストエリアに value 属性を付加していた動きを修正。(thanks: syachi5150)
+---  http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16326
+-- [Breaking B.C] ルールがユーザにとって直感的ではないとの理由から、フォーム定義の max と フォームヘルパの maxlength の連携機能を削除 (thanks: syachi5150)
+--- https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16325
+-- Windowsユーザへの便宜のため、zipアーカイブで成果物を配布するオプションを追加
+- 組み込みの Smarty プラグインの追加
+-- modifier
+--- explode (文字列を,ある文字で分割して配列に変換する)
+-- Filterは一貫してプラグインを使うように変更したため、add-project時の app/filter ディレクトリを削除。
+- Ethna_Session#isAnonymous メソッドが状態を正しく取得できない場合があるバグを修正(thanks:longkey1)
+-- http://ml.ethna.jp/pipermail/users/2008-February/000899.html
+- 国際化に関する変更
+-- デフォルトのタイムゾーンとして、date.timezone を 'Asia/Tokyo' に設定
+-- Ethna_I18N クラス に setTimeZone メソッドを追加 (static呼出)
+- Ethna_MailSender にて、メール送信に問題がある場合の設定として 'mail_func_workaround' を追加
+-- この値を true に設定すると、メールヘッダの改行コードを一律 CRLF にする処理を回避する
+-- $mail = new Ethna_MailSender(); $mail->setOption(array('mail_func_workaround')); でも設定可能
+
+*** bug fix
+
+- Ethna_Controller#getTemplatedir を無視してテンプレートディレクトリを決定していたバグを修正(thanks: hiko)
+-- getTemplatedirメソッドをオーバライドしても強制的にロケールが付加されていた
+-- https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=15570
+- "ethna pear-local list -a" の実行結果がエラーになってしまうバグを修正
+-- https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=15760
+- safe-mode が ON の際に、CacheManager_Localfile がディレクトリを生成できないので、tmp ディレクトリ直下にキャッシュファイルを作成するようにした
+-- skel/skel.app_manager.php も修正
+- APPID-ini.php が存在しない場合,またはURLが設定にない場合,デフォルトURLが HTTP_HOST で設定されていたが,末尾に / がなかったので修正
+- フォームヘルパで自動的に出力されるhiddenタグの閉じ忘れを修正(thanks: id:syachi5150)
+- ethna add-app-manager コマンドで生成されるファイル名およびクラス名が間違っていたバグを修正(thanks: id:syachi5150)
+-- https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16137
+- Validatorが出力するメッセージからフォーム名の後ろのスペースを削るように修正。(thanks: id:syachi5150)
+-- https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16336
+- Smarty 拡張プラグインの wordwrap_i18n にアルファベットのみを渡した場合に正しい結果が返らないバグを修正
+-- 末尾のスペースを取り除く挙動も wordwrap に合わせて削除
+-- http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16839
+- ethna add-test コマンドのヘルプが機能していなかったバグを修正
+- iniディレクティブ date.timezone が設定されてないために、E_WARNING が PHP 5.3.0 で出ていたバグを修正
+- 存在しない(or 削除された) ethnaコマンドを指定すると Fatal Error が起きるバグを修正 (thanks:kondo_)
+-- http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=17894
+- Ethna_Plugin_Logwriter の debug_backtrace の一部が取得できず、E_NOTICE が出るバグを修正 (thanks: http://www.remix.gr.jp/)
+- cli 環境で Ethna_Session::start を叩いたときに $_SERVER 変数がないために E_NOTICE が出る問題を修正
+- PHP 5.3.0 で新設された E_DEPRECATED を ON にすると Fatal Error が起きるバグを修正 (#18418)
+
+** 2.5.0-preview4
+
+*** bug fix
+
+- フォーム定義が配列で、Ethna_ActionForm#getHiddenVars の値を Ethna_ActionForm#setAppNE した場合、クロスサイトスクリプティング脆弱性が存在するバグを修正 (thanks: shuitic)
+-- http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=17332
+
+
+** 2.5.0-preview3
+
+*** features
+
+- アクションフォームに関する変更
+-- フォーム定義を多次元配列に対応させました (thanks: id:syachi5150)
+--- http://d.hatena.ne.jp/syachi5150/20081022/1224676038
+-- フォーム定義を「'def' => array(),」 と定義しなくても、「'def',」 と定義するだけで親のフォームテンプレートの定義を補うようにした (thanks: sotarok)
+-- フォーム定義を動的に変更するためのAPIを追加
+--- Ethna_ActionForm#setFormDef_PreHelper
+    Ethna_Backend や Ethna_Session が初期化後に呼ばれる
+- フォームヘルパに関する変更
+-- 1つのテンプレートに 複数 {form} が指定されたときに、submitされたformに対してのみ補正処理が働くように改善 この場合、{form name=...} 属性の指定が必須
+-- 1つのテンプレートに 複数 {form} が置かれた場合に、それぞれのフォームの配列を区別するようにした
+- Smarty プラグインに関する変更
+-- Ethna 組み込みの Smarty プラグインを分割
+--- Ethna 組み込みの Smarty プラグインとして class/Plugin/Smarty/ に Smarty のプラグイン形式で個別に作成
+--- それに伴い Ethna_Smarty_Plugin クラスは削除
+--- 読み込み順は次のように指定 1. Controller の plugin ディレクトリ 2. Ethna 組み込みの Plugin/Smarty/ ディレクトリ 3. samrty デフォルトのプラグイン
+-- デフォルトの smarty プラグイン よりも Controller の plugins ディレクトリに定義されたプラグインを優先させるように変更
+-- アプリケーション独自のSmarty Pluginの定義場所を app/plugin/Smarty にできるようデフォルトでディレクトリの作成、コントローラに値のセットするよう変更
+- その他雑多な変更
+-- Smarty を 2.6.22 に追随
+-- アプリケーションの最終処理を行うメソッドとして、Ethna_Controller#end を追加
+-- フィルタを一貫してプラグインから取得するように変更
+
+*** bug fix
+
+- safe-mode が ON の際に、Ethna_View_Test がエラーを吐く現象を回避 (thanks:longkey1 [ethna-users:1059])
+- "ethna add-view" コマンドにて、locale 及び client encoding のデフォルト設定が誤っていたバグを修正
+- Ethna_Renderer_Rhaco.php を 1.x 系の最新バージョン 1.6.1 に追随 (thanks: id:akiraneko [ethna-users:1081])
+- 複数ファイルをアップロード(つまり配列を使用)する際、必須チェックが機能しなかったバグを修正(thanks: id:syachi5150)
+- ethna add-app-manager コマンドで生成されるアプリケーションマネージャのクラス名が、[Appid]_Controller#getManagerClassName の設定を反映するように修正。
+- smarty_modifier_unique プラグインが、仕様通り動作していなかったバグを修正
+- Ethna_PearWrapper のエラー処理が誤っていたのを修正 (thanks: id:nazo)
+-- http://wassr.jp/user/nazo/statuses/SkfJTckkN2
+- Ethna_ActionForm#getHiddenVars メソッドで、フォーム定義が配列で設定された値がスカラーの場合に警告が出ていたのを修正(thanks: maru_cc)
+-- 逆に、フォーム定義がスカラーで値が配列の場合は救いようがないので警告扱い
+- www/info.php を実行したり、www/unittest.php を実行すると、サーバが応答しなくなることがあるバグを修正
+-- アクションクラスの書き方によっては、Ethna_InfoManager が 無限ループに陥っていたため
+-- http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092
+
+** 2.5.0-preview2
+
+*** features
+
+- PEAR依存を排除するための変更。依存を排除する理由は以下の通り。
+  1. PEAR が PEAR2 に移行するに伴い、APIが不安定になること
+  2. Ethna が依存している PEAR_Error は既に非推奨であること
+  3. 外部ライブラリにできうる限り依存しない方がユーザの便宜となる
+  4. PEAR に依存していると、PHPライセンスと抵触しているライセンスで配布できない
+-- Console_Getopt の代替として、Ethna_Getopt.php を追加 (Public Domain)
+-- 性質上依存せざるを得ない以下のファイルを除き、Console_Getopt への依存を排除
+--- ETHNA_BASE/bin/ethna_make_package.php
+--- ETHNA_BASE/class/Ethna_PearWrapper.php
+-- [Breaking B.C] Ethna から PEAR_Error まわりの依存を排除。これに伴い、Ethnaクラス が持っていた PEARコアコンポーネンツ の機能は使えなくなっている。
+--- Ethnaクラス に PEAR ライクなエラーチェックメソッドを追加し、それに伴う変更
+--- Ethna_Error で PEAR を呼び出していた部分を修正し、PEARに任せていたメンバ設定等を最実装
+--- PEAR.php で定義されていた OS_WINDOWS 定数の代替として、 ETHNA_OS_WINDOWS 定数を定義した
+    これは PEAR が、OS_WINDOWS 定数が再定義されているかをチェックしていないため
+- 国際化メッセージの生成支援機構として、i18n コマンドを実装
+-- gettext, Ethna組み込みのメッセージカタログに対応
+-- ethna i18n [-b|--basedir=dir] [-l|--locale] [-g|--gettext] [extdir1] [extdir2] ...
+-- メッセージファイルが存在する場合は、Ethna 組み込みのメッセージカタログの場合は、既存の翻訳
+
+
+** 2.5.0-preview3
+
+*** features
+
+- アクションフォームに関する変更
+-- フォーム定義を多次元配列に対応させました (thanks: id:syachi5150)
+--- http://d.hatena.ne.jp/syachi5150/20081022/1224676038
+-- フォーム定義を「'def' => array(),」 と定義しなくても、「'def',」 と定義するだけで親のフォームテンプレートの定義を補うようにした (thanks: sotarok)
+-- フォーム定義を動的に変更するためのAPIを追加
+--- Ethna_ActionForm#setFormDef_PreHelper
+    Ethna_Backend や Ethna_Session が初期化後に呼ばれる
+- フォームヘルパに関する変更
+-- 1つのテンプレートに 複数 {form} が指定されたときに、submitされたformに対してのみ補正処理が働くように改善 この場合、{form name=...} 属性の指定が必須
+-- 1つのテンプレートに 複数 {form} が置かれた場合に、それぞれのフォームの配列を区別するようにした
+- Smarty プラグインに関する変更
+-- Ethna 組み込みの Smarty プラグインを分割
+--- Ethna 組み込みの Smarty プラグインとして class/Plugin/Smarty/ に Smarty のプラグイン形式で個別に作成
+--- それに伴い Ethna_Smarty_Plugin クラスは削除
+--- 読み込み順は次のように指定 1. Controller の plugin ディレクトリ 2. Ethna 組み込みの Plugin/Smarty/ ディレクトリ 3. samrty デフォルトのプラグイン
+-- デフォルトの smarty プラグイン よりも Controller の plugins ディレクトリに定義されたプラグインを優先させるように変更
+-- アプリケーション独自のSmarty Pluginの定義場所を app/plugin/Smarty にできるようデフォルトでディレクトリの作成、コントローラに値のセットするよう変更
+- その他雑多な変更
+-- Smarty を 2.6.22 に追随
+-- アプリケーションの最終処理を行うメソッドとして、Ethna_Controller#end を追加
+-- フィルタを一貫してプラグインから取得するように変更
+
+*** bug fix
+
+- safe-mode が ON の際に、Ethna_View_Test がエラーを吐く現象を回避 (thanks:longkey1 [ethna-users:1059])
+- "ethna add-view" コマンドにて、locale 及び client encoding のデフォルト設定が誤っていたバグを修正
+- Ethna_Renderer_Rhaco.php を 1.x 系の最新バージョン 1.6.1 に追随 (thanks: id:akiraneko [ethna-users:1081])
+- 複数ファイルをアップロード(つまり配列を使用)する際、必須チェックが機能しなかったバグを修正(thanks: id:syachi5150)
+- ethna add-app-manager コマンドで生成されるアプリケーションマネージャのクラス名が、[Appid]_Controller#getManagerClassName の設定を反映するように修正。
+- smarty_modifier_unique プラグインが、仕様通り動作していなかったバグを修正
+- Ethna_PearWrapper のエラー処理が誤っていたのを修正 (thanks: id:nazo)
+-- http://wassr.jp/user/nazo/statuses/SkfJTckkN2
+- Ethna_ActionForm#getHiddenVars メソッドで、フォーム定義が配列で設定された値がスカラーの場合に警告が出ていたのを修正(thanks: maru_cc)
+-- 逆に、フォーム定義がスカラーで値が配列の場合は救いようがないので警告扱い
+- www/info.php を実行したり、www/unittest.php を実行すると、サーバが応答しなくなることがあるバグを修正
+-- アクションクラスの書き方によっては、Ethna_InfoManager が 無限ループに陥っていたため
+-- http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092
+
+** 2.5.0-preview2
+
+*** features
+
+- PEAR依存を排除するための変更。依存を排除する理由は以下の通り。
+  1. PEAR が PEAR2 に移行するに伴い、APIが不安定になること
+  2. Ethna が依存している PEAR_Error は既に非推奨であること
+  3. 外部ライブラリにできうる限り依存しない方がユーザの便宜となる
+  4. PEAR に依存していると、PHPライセンスと抵触しているライセンスで配布できない
+-- Console_Getopt の代替として、Ethna_Getopt.php を追加 (Public Domain)
+-- 性質上依存せざるを得ない以下のファイルを除き、Console_Getopt への依存を排除
+--- ETHNA_BASE/bin/ethna_make_package.php
+--- ETHNA_BASE/class/Ethna_PearWrapper.php
+-- [Breaking B.C] Ethna から PEAR_Error まわりの依存を排除。これに伴い、Ethnaクラス が持っていた PEARコアコンポーネンツ の機能は使えなくなっている。
+--- Ethnaクラス に PEAR ライクなエラーチェックメソッドを追加し、それに伴う変更
+--- Ethna_Error で PEAR を呼び出していた部分を修正し、PEARに任せていたメンバ設定等を最実装
+--- PEAR.php で定義されていた OS_WINDOWS 定数の代替として、 ETHNA_OS_WINDOWS 定数を定義した
+    これは PEAR が、OS_WINDOWS 定数が再定義されているかをチェックしていないため
+- 国際化メッセージの生成支援機構として、i18n コマンドを実装
+-- gettext, Ethna組み込みのメッセージカタログに対応
+-- ethna i18n [-b|--basedir=dir] [-l|--locale] [-g|--gettext] [extdir1] [extdir2] ...
+-- メッセージファイルが存在する場合は、Ethna 組み込みのメッセージカタログの場合は、既存の翻訳
+
+
+** 2.5.0-preview3
+
+*** features
+
+- アクションフォームに関する変更
+-- フォーム定義を多次元配列に対応させました (thanks: id:syachi5150)
+--- http://d.hatena.ne.jp/syachi5150/20081022/1224676038
+-- フォーム定義を「'def' => array(),」 と定義しなくても、「'def',」 と定義するだけで親のフォームテンプレートの定義を補うようにした (thanks: sotarok)
+-- フォーム定義を動的に変更するためのAPIを追加
+--- Ethna_ActionForm#setFormDef_PreHelper
+    Ethna_Backend や Ethna_Session が初期化後に呼ばれる
+- フォームヘルパに関する変更
+-- 1つのテンプレートに 複数 {form} が指定されたときに、submitされたformに対してのみ補正処理が働くように改善 この場合、{form name=...} 属性の指定が必須
+-- 1つのテンプレートに 複数 {form} が置かれた場合に、それぞれのフォームの配列を区別するようにした
+- Smarty プラグインに関する変更
+-- Ethna 組み込みの Smarty プラグインを分割
+--- Ethna 組み込みの Smarty プラグインとして class/Plugin/Smarty/ に Smarty のプラグイン形式で個別に作成
+--- それに伴い Ethna_Smarty_Plugin クラスは削除
+--- 読み込み順は次のように指定 1. Controller の plugin ディレクトリ 2. Ethna 組み込みの Plugin/Smarty/ ディレクトリ 3. samrty デフォルトのプラグイン
+-- デフォルトの smarty プラグイン よりも Controller の plugins ディレクトリに定義されたプラグインを優先させるように変更
+-- アプリケーション独自のSmarty Pluginの定義場所を app/plugin/Smarty にできるようデフォルトでディレクトリの作成、コントローラに値のセットするよう変更
+- その他雑多な変更
+-- Smarty を 2.6.22 に追随
+-- アプリケーションの最終処理を行うメソッドとして、Ethna_Controller#end を追加
+-- フィルタを一貫してプラグインから取得するように変更
+
+*** bug fix
+
+- safe-mode が ON の際に、Ethna_View_Test がエラーを吐く現象を回避 (thanks:longkey1 [ethna-users:1059])
+- "ethna add-view" コマンドにて、locale 及び client encoding のデフォルト設定が誤っていたバグを修正
+- Ethna_Renderer_Rhaco.php を 1.x 系の最新バージョン 1.6.1 に追随 (thanks: id:akiraneko [ethna-users:1081])
+- 複数ファイルをアップロード(つまり配列を使用)する際、必須チェックが機能しなかったバグを修正(thanks: id:syachi5150)
+- ethna add-app-manager コマンドで生成されるアプリケーションマネージャのクラス名が、[Appid]_Controller#getManagerClassName の設定を反映するように修正。
+- smarty_modifier_unique プラグインが、仕様通り動作していなかったバグを修正
+- Ethna_PearWrapper のエラー処理が誤っていたのを修正 (thanks: id:nazo)
+-- http://wassr.jp/user/nazo/statuses/SkfJTckkN2
+- Ethna_ActionForm#getHiddenVars メソッドで、フォーム定義が配列で設定された値がスカラーの場合に警告が出ていたのを修正(thanks: maru_cc)
+-- 逆に、フォーム定義がスカラーで値が配列の場合は救いようがないので警告扱い
+- www/info.php を実行したり、www/unittest.php を実行すると、サーバが応答しなくなることがあるバグを修正
+-- アクションクラスの書き方によっては、Ethna_InfoManager が 無限ループに陥っていたため
+-- http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092
+
+** 2.5.0-preview2
+
+*** features
+
+- PEAR依存を排除するための変更。依存を排除する理由は以下の通り。
+  1. PEAR が PEAR2 に移行するに伴い、APIが不安定になること
+  2. Ethna が依存している PEAR_Error は既に非推奨であること
+  3. 外部ライブラリにできうる限り依存しない方がユーザの便宜となる
+  4. PEAR に依存していると、PHPライセンスと抵触しているライセンスで配布できない
+-- Console_Getopt の代替として、Ethna_Getopt.php を追加 (Public Domain)
+-- 性質上依存せざるを得ない以下のファイルを除き、Console_Getopt への依存を排除
+--- ETHNA_BASE/bin/ethna_make_package.php
+--- ETHNA_BASE/class/Ethna_PearWrapper.php
+-- [Breaking B.C] Ethna から PEAR_Error まわりの依存を排除。これに伴い、Ethnaクラス が持っていた PEARコアコンポーネンツ の機能は使えなくなっている。
+--- Ethnaクラス に PEAR ライクなエラーチェックメソッドを追加し、それに伴う変更
+--- Ethna_Error で PEAR を呼び出していた部分を修正し、PEARに任せていたメンバ設定等を最実装
+--- PEAR.php で定義されていた OS_WINDOWS 定数の代替として、 ETHNA_OS_WINDOWS 定数を定義した
+    これは PEAR が、OS_WINDOWS 定数が再定義されているかをチェックしていないため
+- 国際化メッセージの生成支援機構として、i18n コマンドを実装
+-- gettext, Ethna組み込みのメッセージカタログに対応
+-- ethna i18n [-b|--basedir=dir] [-l|--locale] [-g|--gettext] [extdir1] [extdir2] ...
+-- メッセージファイルが存在する場合は、Ethna 組み込みのメッセージカタログの場合は、既存の翻訳
+   を自動的にマージする。gettext の場合は、新たにファイルを生成し、msgmerge プログラムを使って
+   翻訳を既存のものとマージするように促す
+- 配布する Smarty を 2.6.20 に追随
+- [Breaking B.C] 互換性を保つために残されていた内部メソッドを削除
+-- Ethna_ViewClass#_getTemplateEngine
+- Ethna_ActionClass のメンバに $logger(Ethna_Logger) を追加
+- Ethna_ViewClass のメンバに $ctl(Ethna_Controller) を追加
+-- i18n 周りの情報を容易に変更させるようにするため
+- Ethna_Controller#_setLanguage メソッドを、backend, Session, actionform の初期化が終わってから呼ぶようにした。
+- 2.5.0 preview1 で追加した Ethna_ViewClass#_setLanguage メソッドを削除
+-- アクション実行後のロケール変更はあまり意味がないため :(
+
+*** bug fix
+
+- テストディレクトリの変更のタイミングによっては、Ethna_UnitTestMangerがWARNINGを出す問題を回避 (thanks: maru_cc)
+- selected="selected" の修正漏れを修正 (thanks:maru_cc) 
+- [Breaking B.C] Ethna_Plugin_CacheManager_Memcache の接続デフォルトが persistent になっていたのを通常接続に変更
+-- [appid]/etc/[appid]-ini.php の memcache_use_connect 設定を memcache_use_pconnect に変更
+- プラグインのクラス名にアンダーバーを許していなかったが、PHPのクラス名的に正当な文字であればOKにするように変更(thanks:maru_cc)
+- Ethna_I18N.php で、メッセージをパースする際に空行を見逃していたバグを修正
+- Ethna_MailSender にてメールを送信する際、テンプレートが存在しなかった場合にも空メールを送ってしまうバグを修正 (thanks: ryosuke@sekido.info -> [ethna-users:1053])
+- smarty_modifier_checkbox が仕様に反する動作をしていたバグを修正し、仕様を厳密化した(thanks: maru_cc)
+-- checked が付くのはスカラーで、0 と空文字列、null, false 以外の場合とする 
+- Ethna_ActionError#_getActionForm で、E_NOTICE が出る問題を回避
+
+** 2.5.0-preview1
 
 *** features
 
 - ソースコード全体をUTF-8化
 -- 但し、日本語のソースコードコメントはそのまま
--- [Breaking B.C] フレームワークで扱う内部エンコーディング(mb_internal_encoding)もUTF-8に変更。但し、これは Ethna_Controller#_getDefaultLanguage
+-- [Breaking B.C] フレームワークで扱う内部エンコーディング(mb_internal_encoding)もデフォルトはUTF-8に変更。但し、これは Ethna_Controller#_getDefaultLanguage
    をオーバーライドし、クライアントエンコーディングの値を変えることで変更可能です。
+-- 内部エンコーディングの変更に伴い、動作しなくなった箇所を修正
+--- Ethna_Plugin_Validator_Min.php
+--- Ethna_Plugin_Validator_Max.php
+--- VAR_TYPE_STRING の場合の、最大値最小値のプラグインを再編し、
+    マルチバイトのものとそうでないものを分離。互換性確保用途のプラグインも追加
+---- Ethna_Plugin_Validator_MbStrMax.php     (マルチバイト文字列最大値)
+---- Ethna_Plugin_Validator_MbStrMin.php     (マルチバイト文字列最小値)
+---- Ethna_Plugin_Validator_StrMax.php       (シングルバイト文字列最大値)
+---- Ethna_Plugin_Validator_StrMin.php       (シングルバイト文字列最小値)
+---- Ethna_Plugin_Validator_StrMaxCompat.php (2.3.x までの互換性確保用)
+---- Ethna_Plugin_Validator_StrMinCompat.php (2.3.x までの互換性確保用)
+-- 内部エンコーディングの変更に伴う動作の変更
+--- Ethna_Plugin_Validator_Mbregexp のデフォルトのエンコーディングは、クライアントエンコーディングが仮定されます。デフォルトはUTF-8です。
 - 国際化 (i18n) のための機能追加および変更
 -- [Breaking B.C] 言語名として解釈していた部分をロケール名に変更
 --- これにより、[appid]template/ja, [appid]/locale/ja の「ja」の部分が ja_JP に置き換わります。よって、古いバージョンから移行する場合はディレクトリ名の変更が必要です。
+--- Ethna_ViewClass に、言語切り替え用の _setLanguage メソッドを追加 (protected)
 --- Ethna.php で定義されていた、LANG_JA, LANG_EN はこの変更により使用されないので削除
 -- [Breaking B.C] gettext を使用する際には [appid]/etc/[appid]-ini.php で 'use_gettext' => true と設定しないと gettext を使わないようにした
 --- 2.3.5 までのコードは、gettext.so がロードされていれば *無条件に* gettext が実行されるようになっているので、Ethna 独自のメッセージカタログとの選択がわかりづらいため。
 --- 2.3.5までのコードで gettext を利用している場合は、設定が明示的に必要です。
--- "ethna add-project" コマンドに [-l|locale] オプションを追加
+-- "ethna add-project" コマンドに [-l|--locale] [-e|--encoding] オプションを追加
+-- "ethna add-[view|templete]" コマンドに [-l|--locale] [-e|--encoding] オプションを追加
 -- スケルトンの日本語コメントをすべてASCIIに変更(好みのエンコーディングで編集できるようにするため)
+-- gettextを使わない場合向けに、Ethna独自のメッセージカタログを実装
+--- ini ファイルライクなフォーマットで msgid と翻訳を格納する方式
+--- Ethna_I18N#setLanguage で出力ロケールの切り替えも可能
 - [Breaking B.C] レンタルサーバを考慮して、[appid]_Controllerの include_path を、[appid]/lib を優先するように変更
 -- include_path の順番に依存するコードは少ないとは思いますが、移行の際は注意すべきです。
 - "ethna add-project" コマンドに [-s|skeldir] オプションを追加
 -- 指定されたスケルトンディレクトリに、ETHNA_HOME/skel と同じファイル名のものが存在する場合はそちら
    を優先した上で、ETHNA_HOME/skel にないファイルは [appid]/skel にコピーする
+- [Breaking B.C] Ethna_ActionForm のバリデータは、プラグインのものしか使用しなくなりました。
+-- Ethna_ActionForm, [Appid]ActionForm の use_validator_plugin 変数を削除
+
+*** bug fixes
+
+- tpl/info.tpl のタグミスを修正
+- smarty_modifier_plugin が配列の場合に、プラグインとして登録されないバグを修正
+- フォームヘルパでセレクトボックスの配列フォームを作ると値が保持されない点を修正 (ethna-users:0868)
+- smarty_modifier_select の戻り値が、諸々のHTML標準と異なっていたバグを修正(thanks: maru_cc)
+-- selected="true" -> selected="selected"
+- アプリケーションIDの始めの文字に数値を許していたバグを修正
+-- クラス名のprefixになるため、数値を許すと自動生成物がコンパイルエラーを起こす
+- Ethna_Util#getRandom で open_basedir が有効な場合に、 /proc を開けず警告が出る点を回避(thanks. sotarok)
+-- http://d.hatena.ne.jp/sotarok/20070813/1187055110
+- Ethna_ClassFactory#getManager の第1引数を、大文字小文字を区別しないように修正。(thanks:maru_cc)
+-- 第1引数はクラス名の一部として扱われており、PHPがクラス名の大文字小文字を区別しないことから、
+   大文字小文字を区別せず同じインスタンスを返すのが妥当と考えられる。
+- Ethna_Plugin_LogWriter クラスにて、バックトレース走査時の軽微なバグを修正(ethna-users:1024, thanks:sfio)
+- Ethna_Config.php にて、設定ファイルのロックが機能していなかったバグを修正
+
+** 2.3.7 [#ca10ecac]
+
+*** bug fix [#qb2a22c6]
+
+- フォーム定義が配列で、Ethna_ActionForm#getHiddenVars の値を Ethna_ActionForm#setAppNE した場合、クロスサイトスクリプティング脆弱性が存在するバグを修正 (thanks: shuitic)
+-- [[http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=17332:http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=17332]]
+
+** 2.3.6 [#w8dda865]
+
+*** features [#f44940f9]
+
+- レンタルサーバを考慮して、[appid]_Controllerの include_path を、[appid]/lib を優先するように変更
+
+*** bug fixes [#mf615558]
+
+- 2.5.0 preview3からのバックポート
+-- 複数ファイルをアップロード(つまり配列を使用)する際、必須チェックが機能しなかったバグを修正(thanks: id:syachi5150)
+--- このバグは重大なので全ての安定版ユーザはアップデートを推奨
+-- プラグインを使用しない場合に、required_num の場合について、ファイルの場合は1つ入力されていたらvalidとされていたのを、プラグインの動作に合わせて一応修正
+--- この点は通常ユーザには影響しない。プラグインを使用するのがデフォルトだから。
+-- Ethna_Renderer_Rhaco.php を 1.x 系の最新バージョン 1.6.1 に追随 (thanks: id:akiraneko [ethna-users:1081])
+-- smarty_modifier_unique プラグインが、仕様通り動作していなかったバグを修正
+-- Ethna_ActionForm#getHiddenVars メソッドで、フォーム定義が配列で設定された値がスカラーの場合に警告が出ていたのを修正(thanks: maru_cc)
+--- 逆に、フォーム定義がスカラーで値が配列の場合は救いようがないので警告扱い
+-- www/info.php を実行したり、www/unittest.php を実行すると、サーバが応答しなくなることがあるバグを修正
+--- アクションクラスの書き方によっては、Ethna_InfoManager が 無限ループに陥っていたため
+--- http://sourceforge.jp/tracker/index.php?func=detail&aid=10006&group_id=1343&atid=5092
+- 2.5.0 preview2からのバックポート
+-- selected="selected" の修正漏れを修正 (thanks:maru_cc)
+-- Ethna_MailSender にてメールを送信する際、テンプレートが存在しなかった場合にも空メールを送ってしまうバグを修正 (thanks: ryosuke@sekido.info -> [ethna-users:1053])
+-- smarty_modifier_checkbox が仕様に反する動作をしていたバグを修正し、仕様を厳密化した(thanks: maru_cc)
+--- checked が付くのはスカラーで、0 と空文字列、null, false 以外の場合とする
+-- Ethna_ActionError#_getActionForm で、E_NOTICE が出る問題を回避
+- 2.5.0 preview1からのバックポート
+-- tpl/info.tpl のタグミスを修正
+-- smarty_modifier_select の戻り値が、諸々のHTML標準と異なっていたバグを修正(thanks: maru_cc)
+--- selected="true" -> selected="selected"
+-- アプリケーションIDの始めの文字に数値を許していたバグを修正
+--- クラス名のprefixになるため、数値を許すと自動生成物がコンパイルエラーを起こす
+-- Ethna_Plugin_LogWriter クラスにて、バックトレース走査時の軽微なバグを修正(ethna-users:1024, thanks:sfio)
+-- Ethna_Config.php にて、設定ファイルのロックが機能していなかったバグを修正
+- その他安定版にのみ影響するもの
+-- アクションフォームクラスのスケルトンの一部で、$use_validator_plugin = false となっていたのをデフォルトのtrueに修正
+--- これはプロジェクト作成時の app/action/Index.php にのみ影響する。ユーザはこれを通常は再利用しないと考えられるので、通常は影響ない
 
 ** 2.3.5