OSDN Git Service

- re-implemented "ethna make-plugin-package" command.
[ethna/ethna.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 918f7f2..7336756 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,139 @@
 * 変更点一覧
 
+** 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
@@ -8,6 +142,7 @@
   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
 -- [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