* 変更点一覧 ** 2.5.0-preview6 *** features - Ethna_ViewClass#redirect にて、リダイレクト用HTTPステータスコードが302で固定だったので、オプション引数として変更可能とした - 国際化に関する変更 -- デフォルトのタイムゾーンとして、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')); でも設定可能 - Ethna_Plugin::import という,プラグインソースをincludeするための,staticメソッドを追加. - すべてのPluginの基底となる抽象クラス,Ethna_Plugin_Abstractを追加 -- 既存のプラグインの親クラスを,Ethna_Plugin_Abstract を継承するように変更 -- Plugin に設定を受け渡す方法を変更したため,etcのskelを変更 --- それに伴い,Ethna_Plugin_Cachemanager_Memcacheの設定方法を変更 *** bug fix - ethna make-plugin-package のデフォルトインストールディレクトリが誤っていたバグを修正 - iniディレクティブ date.timezone が設定されてないために、E_WARNING が PHP 5.3.0 で出ていたバグを修正 - Ethna_Plugin::includePlugin メソッドの実装が動作するものではなかったので変更 ** 2.5.0-preview5 *** 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 する仕様を変更 -- include せず、fallback用のactionを実行する - add-project -b オプションの挙動変更 - controller での smarty_xx_plugin の機能を削除 - ビューまわりの変更 -- Ethna_ActionClass から、Ethna_ViewClass#preforward に引数を渡せるようにした --- return array('forward_name', $params); の形式で渡せば、$params が preforwardの引数として渡される -- 汎用ビュークラスを実装 --- ビューへの出力時によく使われる処理を雛形として実装したもの --- Ethna_View_Json.php --- Ethna_View_403.php --- Ethna_View_404.php --- Ethna_View_500.php --- Ethna_View_Redirect.php ---- アクションクラスで return array('redirect', 'http://example.com'); とすれば http://example.com にリダイレクトされる -- レイアウトテンプレートを実装 --- HTMLの外側に当たる雛形のテンプレートを描くためのもの。各アクションの出力はこのテンプレートの出力でラップされる --- デフォルトは template/{locale_name}/layout.tpl に置かれている。 --- この機能はデフォルトで有効になっている。無効にしたければ、[appid]_ViewClass.php の $use_layout を false にする -- フォームヘルパのテキストエリアに value 属性を付加していた動きを修正。(thanks: syachi5150) --- http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16326 - [Breaking B.C] プラグインに関する変更 -- プラグインから名前空間を除去することで、複数アプリケーションでの利用を可能に -- 検索用のアプリケーションIDを削除した -- ファイル名の命名規則を変更 -- extlibの設置 -- プラグイン関連のethnaコマンドを整理し、インストール、アンインストール関連コマンドは ethna pear-local コマンドに一本化 --- ethna channel-update (削除) --- ethna info-plugin (削除) --- ethna install-plugin (削除) --- ethna uninstall-plugin (削除) --- ethna upgrade-plugin (削除) --- ethna list-plugin (削除) -- プラグインパッケージのスケルトンを生成するコマンドとして ethna create-plugin コマンドを追加 --- 複数のtypeのプラグイン同時作成が可能に --- Ethnaプロジェクト内でのプラグインの自動生成が可能に --- ethna make-plugin-package との連動が可能に -- ethna create-plugin コマンドの出力から ethna make-plugin-package を実行できるようにコマンドを再実装 --- これにより、複数のプラグインを含んだパッケージの作成が可能に -- Filterは一貫してプラグインを使うように変更したため、add-project時の app/filter ディレクトリを削除。 - Smartyに関する変更 -- Smarty を 2.6.26 に追随 -- 組み込みの Smarty プラグインの追加 --- explode修正子 (文字列を,ある文字で分割して配列に変換する) - その他雑多な変更 -- [Breaking B.C] ルールがユーザにとって直感的ではないとの理由から、フォーム定義の max と フォームヘルパの maxlength の連携機能を削除 (thanks: syachi5150) --- https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=16325 -- Windowsユーザへの便宜のため、zipアーカイブで成果物を配布するオプションを追加 *** 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_Session#isAnonymous メソッドが状態を正しく取得できない場合があるバグを修正(thanks:longkey1) -- http://ml.ethna.jp/pipermail/users/2008-February/000899.html - ethna add-test コマンドのヘルプが機能していなかったバグを修正 ** 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 組み込みのメッセージカタログの場合は、既存の翻訳 を自動的にマージする。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 をオーバーライドし、クライアントエンコーディングの値を変えることで変更可能です。 -- 内部エンコーディングの変更に伴い、動作しなくなった箇所を修正 --- 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] [-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 メソッドで、フォーム定義が配列で設定された値がスカラーの場合に警告が出ていたのを修正(t hanks: 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 *** features - PEAR チャンネルサーバに ethna/simpletest, ethna/Smarty を追加 -- インストール後のsimpletest, Smartyのパスで悩む罠を軽減することが目的 -- pear コマンドで Ethna をインストールするときにこれらを Optional に依存するように設定。既存のインストールを考慮して、required にはしていない。 - Ethnaコマンドに一般的なテストケースコマンドとして add-test コマンドを追加(thanks: BoBpp) -- ethna add-test -s [skelname] [name] で実行できます -- http://blog.as-roma.com/BoBlog/index.php?itemid=1338 -- これは自動登録されるため、[appid]_UnitTestManager に定義を追加する必要はありません(thanks: id:okonomi) --- http://d.hatena.ne.jp/okonomi/20080408 - Ethna_Renderer_Rhacoを追加(experimental) - Ethna_DB_ADOdbのdebug時のログ出力をEthnaのLoggerに変更(@see http://d.hatena.ne.jp/sotarok/20071224) - Ethna add-[|action|view]-test コマンドで生成されるテストケースがデフォルトでfailするように改善 - Ethna のユニットテスト実行時に [appid]/etc/[appid]-ini.php のデバッグ設定がfalseの場合のエラー処理を改善 -- エラー処理をphpに任せて画面を真っ白にするのではなく、親切なエラーメッセージを表示する - [action|view] のユニットテスト生成時、対応するアクション(ビュー)スクリプトがない場合は警告を生成するようにした。 - Ethna の add-[action|view] コマンドで、同時にユニットテストを作成できるようにするオプションを追加。 -- ただし、add-view コマンドで -t を指定した場合は、これらのオプションは無視される。 -- ethna add-[action|view] add-view [-w|--with-unittest] [-u|--unittestskel=file] [action|view] *** bug fixes - ethna pear-local コマンドで Ethna を [appid]/lib/ にインストールすると、[appid]_Controller.php のinclude_path の設定によっては ethnaコマンドが動かなくなるのを回避 (thanks: sotarok) -- ethna pear-local コマンドで Ethna を [appid]/lib にインストールしても、[appid]/bin/ethna が使えるようにした。 - 配列のフォームをvalidateする際、値がnullだとフィルタが適用されないバグを修正 - Ethna_Plugin_Cachemanager_Memcache に引数がなかったためにプラグイン呼び出しに失敗していたバグを修正(thanks sfio, ethna-users:0818) - Ethna_PearWrapper、Ethna_Plugin_Csrf_Session, Ethna_InfoManager 等を微調整(thanks sfio, ethna-users:0825) - form_input の default 属性が、入力値で上書きできなかったバグを修正(thanks sotarok, ethna-users:0836) - call_user_func の戻り値がオブジェクトだった場合に、E_NOTICEが出る問題を回避(PHP 4.4限定) [ethna-users:0910] - ActionForm の validate test の結果が、次のテストに引き継がれてしまうバグを修正(thanks: maru_cc) ** 2.3.2 *** features - %%[breaking B.C.]%% Ethna_UrlHandler (URLハンドラ) をプラグイン化 -- Ethna_Plugin_Urlhandler_Default を追加 -- %% $action_map を App_Urlhandler から App_Plugin_Urlhandler_Default に移動する必要があります %% -- やっぱり戻しました。プラグインを呼び出したいときにApp_UrlHandlerクラスで指定するように変更。 - プラグインのクラスが既に存在する場合は特別にファイルの検索をスキップするようにした。 - Ethna_ViewClass::_getFormInput_* で $separator のデフォルトを '' から "\n" に変更 - Ethna_Controller::_trigger_XMLRPC で $GLOBALS['HTTP_RAW_POST_DATA'] を使わずに 'php://input' を使うように変更 -- php.ini の設定が不要になりました。 - Ethna_MailSender -- $type 引数を $template と rename して、より積極的にテンプレート名と解釈するようにした。 --- $def を特に指定しなければ ViewClass の forward_name と同様に template/ja/mail/ 以下からテンプレートを探します。 -- multipart: 2 つ以上の添付、ファイル名を指定した添付に対応しました。 --- ただしデフォルトの content-type は application/octet-stream でごまかしているのと、日本語ファイル名がてきとうです。 - Ethna_Renderer, Ethna_Renderer_Smarty -- perform() の第2引数に $capture フラグを追加 -- true のときは Smarty 的に display でなく fetch になります。 - Ethna_Util::isRootDir() 追加 - ethna_make_packageで.svnに対応 - Ethna_Plugin_Validator_Mbregexp 追加 (thx: mumumu) -- mb_eregを使ったマルチバイト対応正規表現プラグイン - Ethna_Plugin_Handle_PearLocal 追加 -- PEARパッケージを各プロジェクト毎に管理できるプラグイン - View のユニットテストができなくなっていたバグを修正(thx: sfio, ethna-users:0651) *** bug fixes - raiseError()類の引数が間違っていたのを修正 (thx: sfio) - プラグインパッケージインストール時に '{$application_id}' が置換されないバグを修正 - add-template が正しく動作していなかったのを修正 - Ethna_ViewClass::_getFormInput_Select で multiple を考慮していなかったのを修正 - Ethna_AppObject::_getSQL_SearchId で救済になってないエラーのスキップを削除 -- 有効な key がないときに、どちらにしろ SQL エラーになってた - OS_WINDOWSでgetAppController()が無限ループになっていたのを修正 -- ルートディレクトリ判定に失敗していた - Console_Getoptなどのアップグレードに対応 -- php4対応のreference返しがなくなっていたのに伴って発生していたnoticeを回避 - xmlrpcのパラメータがActionFormに渡っていなかったのを修正(#9845) - file_type の検査 が機能しない問題を修正 - MailSenderでテンプレートファイルを指定しない場合の挙動を修正 - MailSenderのBare LFをCRLFに置換(#9898, ethna-users:0588) - Smarty の $script 変数の値が、PATH_INFOの値が含まれると潜在的に誤動作するバグを修正(thx: cockok, ethna-users:0687) ** 2.3.1 *** features - ethnaコマンドで@PHP-BIN@が置換されずに残っている場合(CVS版を使っているときなど)に対応 - デフォルトテンプレートにバージョン番号をこっそり追加 *** bug fixes - Mac/Windowsでpear経由でのインストールに失敗していた問題を解消 -- すべてのroleをphpにして、ethna.{sh,bat}のみscriptを指定 - Ethna_ViewClass::setPlugin() で $plugin の検証に is_callable を使用 (ethna-users:0507) - install-plugin が正しく動いていなかったのを修正 (#9582) - ethna.shでPHPのパスが指定されていなかったのを修正(ethna-users:0508) - Ethna_AppObjectで'key'の条件にunique_key, multiple_keyが漏れていたのを修正 - Ethna_ViewClassで