* 変更点一覧 ** 2.5.0-dev *** features - ソースコード全体をUTF-8化 -- 但し、日本語のソースコードコメントはそのまま -- [Breaking B.C] フレームワークで扱う内部エンコーディング(mb_internal_encoding)もデフォルトはUTF-8に変更。但し、これは Ethna_Controller#_getDefaultLanguage をオーバーライドし、クライアントエンコーディングの値を変えることで変更可能です。 -- 内部エンコーディングの変更に伴い、動作しなくなった箇所を修正 --- Ethna_Plugin_Validator_Min.php --- Ethna_Plugin_Validator_Max.php -- 内部エンコーディングの変更に伴う動作の変更 --- Ethna_Plugin_Validator_Mbregexp のデフォルトのエンコーディングは、クライアントエンコーディングが仮定されます。デフォルトはUTF-8です。 - 国際化 (i18n) のための機能追加および変更 -- [Breaking B.C] 言語名として解釈していた部分をロケール名に変更 --- これにより、[appid]template/ja, [appid]/locale/ja の「ja」の部分が ja_JP に置き換わります。よって、古いバージョンから移行する場合はディレクトリ名の変更が必要です。 --- 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] オプションを追加 -- スケルトンの日本語コメントをすべてASCIIに変更(好みのエンコーディングで編集できるようにするため) - [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 のバリデータは、プラグインのものしか使用しなくなりました。 ** 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で