Download List

Project Description

プロジェクト管理はGitHubに移動しました。 https://github.com/ethna/ethna

System Requirements

System requirement is not defined

Released at 2006-11-29 22:45
Ethna 2.3.0 (1 files Hide)

Release Notes

No Release Notes

Changelog

*** features

- ethnaコマンドのハンドラ再編
-- 全般的にgetopt化
--- "--basedir" で対象アプリの場所を指定
--- "--skelfile" で生成元のスケルトンファイルを指定
-- 全てのgeneratorで "アプリ -> Ethna本体" の順にスケルトンファイルを探すように変更
-- add-action-cli, add-action-xmlrpcを廃止、add-actionに "--gateway=www|cli|xmlrpc" を追加
-- add-entry-point追加
--- ethna add-entry-point --gateway=cli foo で bin/foo.php, app/action/Foo.php を生成
-- pearコマンドを使うハンドラに "--pearopt" を追加(experimental)
--- ethna install-plugin -p--alldeps -p--force foo bar のように指定する
-- Ethna_Handle::_getopt()の出力を変更

- misc追加
-- plugin packagerのサンプル
-- おまけ: _ethna (zshの補完関数)

- Smarty, PEAR_DBのincludeのタイミングを変更
-- 必要時に Ethna_ClassFactory::_include() を使うようにした。

- Ethna_AppObjectをpostgres, sqliteに簡易対応
-- 1テーブルの1レコードが1オブジェクトに対応するような単純なモデルのみ対応
-- まだdb typeごとに調整が必要になることがあります。
-- pgsqlでsequenceに対応
-- テーブル名、カラム名の自動quoteに対応

- add-* ハンドル機能追加
-- add-template: --skelfile オプションで生成元のスケルトンファイルを指定できるようにした

- {form_input}ヘルパー
-- select, radio, checkboxに対応
-- 選択肢をフォーム定義で指定できるようにした(afのmethod, property, managerなど)
-- 外側の{form}ブロックからaction名, default値を取得できるようにした
-- フォーム定義からもdefault値を指定できるようにした

- Ethna_Plugin_Handle_{Install,Upgrade}Plugin に --state オプションを追加
- local のプラグインの prefix を App に変更(app_idの予約語扱い)

- Ethna_Plugin_Handle_ClearCache 追加
-- 現状 smarty, pear, cachemanager_localfile, tmp以下問答無用で削除、のみの対応
- ethna_error_handler() の print 条件を変更
-- Logwriter プラグイン化に伴う $has_echo 条件のバグを修正
-- $has_echo に加えて $config->get('debug') を見るようにした
- Ethna_Handle で Ethna_Controller と App_Controller が共存する場合の扱いが混乱していたのを整理
- Ethna_Hanlde に mkdir(), chmod(), purgeDir() を追加
- Cachemanager プラグイン中の PEAR::raiseError() を Ethna::raiseError() に変更
- Ethna_Logger で Ethna_Config オブジェクトの取得に失敗したときの処理を修正
- ethna {install,uninstall,upgrade}-plugin で skel から generate されるファイルの上書き確認を廃止

- Ethna_Plugin_Handle_ListPlugin
-- パッケージ管理に係わらずプラグインの一覧を表示
-- パッケージ管理下にあるときはパッケージ名とバージョンを表示
- Ethna_Plugin_Handle_UpgradePlugin, Ethna_Plugin_Handle_ChannelUpdate
-- プラグインパッケージのupgrade, pear channelのupdateに対応
-- http://pear.server/get/Package-1.2.3.tgz のようなinstall, upgradeに対応
- PearWrapper, Ethna_Handleでのデフォルトターゲット(localかmasterか)をlocalに変更、統一
- Ethna_Plugin_Handle_{Install,Uninstall,Info,List}Plugin
-- master, localのハンドラを分けていたのを統合
-- ダウンロード済みの tgz に対応
-- Console_GetOpt で --channel, --basedir, --local, --master のオプションを追加
-- new PEAR_Error() 時の error handler を callback($ui, 'displayFatalError') に変更

- Ethna_UrlHandlerクラスを追加(ステキurl対応)
- Smartyプラグイン関数smarty_function_url追加
- Ethna_AppObjectからのフォーム定義生成サポート追加
-- [2006/08/23] 激しくα
- Ethna_ClassFactory::getObject()でクラス定義に無いキーが渡された場合はEthna_AppObject()のキーであると仮定してオブジェクト生成
- アプリケーションスケルトン生成時にアプリケーション固有のActionClass, ActionForm, ViewClassも生成するように変更
- Ethna_SkeltonGeneratorクラスをEthna_Generatorクラスに名称変更
- Ethna_SkeltonGeneratorクラスの各メソッドをプラグイン化
- Ethna_Config::get()で引数を指定しないと全設定を格納した配列を返すように変更
- Ethna_ViewClass::_getTemplateEngine()で設定値を格納した$configテンプレート変数を設定するように変更
- Ethnaのパッケージシステムを追加
-- ethna用のpear channelからプラグインのパッケージをインストールできるようになります
-- Ethna_PearWrapper, Ethna_Plugin_Handle_{Install,Info,List,Uninstall}_Plugin_{Master,Local}を追加
-- local: アプリケーション(プロジェクト)のディレクトリ、master: Ethna本体のあるディレクトリのイメージです
-- PearWrapperはethnaコマンド(Handle)から呼び出されることが前提
-- Ethna_SkeltonGeneratorにあったメソッドをEthna_Handleに移動、少し追加

- エラーハンドリング方針を多少変更
-- @演算子を使ったエラー抑制を廃止

- [breaking B.C.] Ethna_ClassFactoryのリファクタリング
-- Ethna_Backend::getObject()メソッドを追加しました
-- これにより、Ethna_Controllerの$classメンバに
$class = array(
// ...
'user' => 'Some_Foo_Bar',
),
と記述することで
$user =& $this->backend->getObject('user');
としてSome_Foo_Barクラスのオブジェクトを取得することが出来ます
-- クラス定義が見つからない場合は下記の順でファイルを探しに行きます(include_path)
+++ Some_Foo_Bar.php (そのまま)
+++ Foo/Some_Foo_Bar.php (Ethna style)
+++ Foo/Bar.php (Ethna & PEAR style)
+++ Some/Foo/Bar.php (PEAR style)
-- アプリケーションマネージャの生成もEthna_ClassFactoryで行われます(Ethna_ClassFactory::getManager()が追加されています)
-- これに伴い、〜2.1.xではコントローラクラスに
$manager = array(
'um' => 'User',
);
のように記述されていると、Ethna_ActionClass、Ethna_ViewClass、Ethna_AppObject、Ethna_*Managerで
$this->um
としてマネージャオブジェクトにアクセスできていたのですが、この機能が廃止されています(不評なら戻します@preview2)
- Ethna_Plugin_Logwriter_File::begin()でログファイルのパーミッションを設定するように変更
- ハードタブ -> ソフトタブ
- test runnerの追加
- [breaking B.C.] Ethna_Loggerリファクタリング
-- Ethna_LogWriterのプラグイン化
-- カンマ区切りでの複数ファシリティサポート
-- _getLogWriter()クラスをオーバーライドしている方に影響があります(2.3.0以降はPlugin/Logwriter以下にLogwriterクラスを置いて、ファシリティでその名前を指定すれば任意のLogwriterを追加可能です)
- [breaking B.C.] Ethna_Renderer追加
-- 〜2.1.xでは直接扱っいてたテンプレートエンジンオブジェクトをEthna_Rendererクラスでwrapしました
-- Ethna_Controller::getTemplateEngine()はobsoleteとなりますので今後はEthna_Controller::getRenderer()をご利用ください
-- Ethna_Controller::_setDefaultTemplateEngine(), Ethna_View::_setDefault(), Ethna_Controller::getTemplateEngine()の引数、戻り値は2.1.xまでのSmartyオブジェクトではなくEthna_Rendererオブジェクトとなります
-- これに伴い、Ethna_Controller::_setDefaultTemplateEngine(), Ethna_Controller::getTemplateEngine()を利用しているアプリケーションではアップデート時にEthna_Renderer::getEngine()を利用して後方互換性を維持するように変更が必要となります
e.g.
$smarty =& $this->controller->getTemplateEngine();

$renderer =& $this->controller->getTemplateEngine();
$smarty =& $renderer->getEngine();
- プラグインシステム追加(w/ Ethna_Pluginクラス)
-- Ethna_Handle, Ethna_CacheManager, Ethna_LogWriterをプラグインシステムに移行
-- Ethna_ActionFormのバリデータをプラグインシステムに移行(Ethna_ActionForm::use_validator_pluginがtrueのときのみ)
-- see also
--- http://ethna.jp/ethna-document-dev_guide-plugin.html
--- http://ethna.jp/ethna-document-dev_guide-form-validate_with_plugin.html
- ethnaコマンドにアクション名、ビュー名のチェック処理を追加(Ethna_Controller::checkActionName(), Ethna_Controller::checkViewName()を追加)
- Ethna_CacheManager_Memcache(キャッシュマネージャのmemcacheサポート)追加
- Ethna_Sessionにregenerate_idメソッドの追加
- Ethna_Plugin_Csrf(CSRF対策コード)追加



*** bug fixes

- [[#9009>http://sourceforge.jp/tracker/index.php?func=detail&aid=9009&group_id=1343&atid=5092]](%s等があるSQLをEchoLoggerでDebugするとWarning)
- アクション定義のform_pathが正しく動作していなかった問題を修正
- コントローラが複数あるときにset_error_handler()が何度も実行されるのを回避
- CacheManager_Localfileの@statでのWARNINGを回避
- Ethna_Plugin_Validator_Customでエラーが2重登録されていたのを修正
- プラグインの親クラスがないときにエラーになっていたのを修正
- Ethna_DB_PEAR, Ethna_AppObjectのWARNINGを回避([ethna-users:0383])
- Windowsでホームディレクトリの.ethnaファイルが参照されない問題を修正
- session_startしていないとrestoreメソッドがうまく動かない問題を修正
- ethnaコマンドにサポートされていないオプションのみを指定して起動した場合(ethna -hなど)にFatal Errorとなる問題を修正

- Ethna_Backend::getDBのNoticeエラーを修正
- キャッシュマネージャのエラーコードが256以上(アプリケーション用)になっていた問題を修正
- ethna add-action-testしたときにファイルがapp/action_cliに生成されてしまう問題を修正
- Ethna_SkeltonGeneratorクラスのtypoを修正(proejct -> project)
- Ethna_ActionFormでプラグインを使わないときにフィルタが機能しないバグを修正