Ethna_Session, Ethna_Renderer_Smarty の設定を使いやすくして欲しい
Ethna_Config を使うように実装を変更するのはもちろんだが、以下のドキュメントもこれを機会に改善すること
Controllerのディレクトリ設定でキャッシュファイルの設定は変えちゃってますが、それじゃだめなんですかね? もっといえば、私はtmp以下でなく、tmp/c以下とかにSmartyのコンパイルファイルを置いてたりします。セッションを保存するディレクトリも同じようにコントローラで設定できたらいいんじゃないかと思ったりしますがどうなんでしょう?
sotarok への返信
Controllerのディレクトリ設定でキャッシュファイルの設定は変えちゃってますが、それじゃだめなんですかね? もっといえば、私はtmp以下でなく、tmp/c以下とかにSmartyのコンパイルファイルを置いてたりします。セッションを保存するディレクトリも同じようにコントローラで設定できたらいいんじゃないかと思ったりしますがどうなんでしょう?
ディレクトリの設定やファイルパスの設定は現状Controllerレベルに納めているので、セッションにせよ、templates_cにせよ、上記はControllerレベルで問題ないと思います。
但し、ディレクトリやファイルパスで収まらない設定もあります。たとえばSmartyのデリミタや、セッションの自動スタートや携帯向けの設定などです。それらについては、appid-ini.php に納めるべきだと思います。
たとえばデリミタとかに関しては、appid-ini.phpのほうに収めるべきかどうかっていうのはちょっと疑問です。 アプリケーションの設定と、開発時における設定は一緒にするんだっけ?というのがありますし。
レンダラの設定に関してはもう少し考慮する必要があるにせよ、それをappid-ini.phpに含めるようにするというのはちょっと違う気がしますが。
sotarok への返信
たとえばデリミタとかに関しては、appid-ini.phpのほうに収めるべきかどうかっていうのはちょっと疑問です。 アプリケーションの設定と、開発時における設定は一緒にするんだっけ?というのがありますし。 レンダラの設定に関してはもう少し考慮する必要があるにせよ、それをappid-ini.phpに含めるようにするというのはちょっと違う気がしますが。
いい案があったら教えてください :)
Ethnaの設定には、以下の3レベルがある
1. [appid]-ini.php 2. [appid]_Controller 3. 役割に応じたそれぞれのクラス
Ethna_Renderer_Smarty を上記のどれに当てはめるか、という話でいくと、appid-ini.phpは 多分違っていて、2. か 3. になる。Ethna_ViewClass か、Ethna_Renderer_Smarty を工夫しつつ うまいやり方を考える必要がある。
Ethna_Session は 1. で設定させてよいと思われる。格納するストレージの設定や、それぞれの 設定はグローバルに適用されるものだからである。
これは次のバージョンにて対処することとし、特に Ethna_Session まわりは重点を置いて対処したいと思います。
関連チケット: https://sourceforge.jp/ticket/browse.php?group_id=1343&tid=18668 (Smarty の delimiter を変更して使っていると i18n コマンドで正常にテンプレートの解析ができない)
http://ml.ethna.jp/pipermail/users/2009-March/001108.html
現状(2.5.0 preview3)のEthnaの実装では、Ethna_Session と Ethna_Renderer_Smarty の 設定を変更するのが大変である。現状はこれらクラスを継承するなり、Ethna_Controller 経由で設定を書き換えざるを得ないからである。
上記のMLのスレッドでは、SmartyとSessionのキャッシュファイルがひとつのディレクトリ に集まってしまっているために、ファイルシステムの肥大化が問題になっている。こうした 問題を appid-ini.php の設定を変更するだけで対処できるようにしたい。