Hawk
schol****@hawkl*****
2006年 7月 30日 (日) 21:34:12 JST
Hawkです。 現在のmaple.inc.phpには不要な定数が多すぎると思うので、 設定ファイル化を機に、整理したいと思います。 (http://blog.hawklab.jp/item-80.htmlなど参照) 以下に、maple.inc.phpおよびentry.php内に存在する全ての定数について 分類を行いました。 「Maple本体側に移すべき」とコメントしたものは、 Maple本体側の設定ファイル(仮名:maple/config/common.php)で設定して、 全てのwebappで共通の値を用いるべきと考えられる定数です。 その他、「コードベースの設定用インターフェースを用意すべき」 「そもそも不要」といった風に分類してあります。 検証をお願いします。 === CONFIG_FILE = "maple.ini" 変更することはまず無い。 Maple本体側に移すべき。 === VALIDATE_ERROR_TYPE = input TOKEN_ERROR_TYPE = invalidToken UPLOAD_ERROR_TYPE = upload 変更する意味はほとんど無い。 各Filterのファイル内に移動させるべき。 === LEVEL_FATAL = 6 LEVEL_ERROR = 5 LEVEL_WARN = 4 LEVEL_INFO = 3 LEVEL_DEBUG = 2 LEVEL_TRACE = 1 変更する意味はない。 Maple本体側に移すべき。 === INPUT_CODE = "EUC-JP" CONFIG_CODE = "EUC-JP" TEMPLATE_CODE = "EUC-JP" INTERNAL_CODE = "EUC-JP" OUTPUT_CODE = "EUC-JP" SCRIPT_CODE = "EUC-JP" 何とか減らしたいが……。 === SKELETON_CODE = "EUC-JP" "generator"というアプリケーション固有の設定であり、 そもそもwebapp内には必要ない。 === DEFAULT_TEMPLATE = simple generatorのための設定であり、定数化する必要はない。 generator.defaultView あたりの名称に変更すべき。 === MAPLE_SMARTY_DIR = "Smarty/" 旧SMARTY_DIR。廃止予定。 [Maple-dev: 170] Re: Smartyについて === SMARTY_CACHING = false SMARTY_CACHE_LIFETIME = 3600 SMARTY_COMPILE_CHECK = false SMARTY_FORCE_COMPILE = true SMARTY_DEFAULT_MODIFIERS = "escape:html" コードベースの設定用インターフェースを用意すべき。 例えば Smarty4Maple::globalOptions(array( 'caching' => false, 'force_compile' => true, 'default_modifiers' => array('escape:html') )); === FILTER_DIR = "/filter" CONVERTER_DIR = "/converter" VALIDATOR_DIR = "/validator" LOGGER_DIR = "/logger" 事実上変更不可能なディレクトリ。 Maple本体側に移すべき。 === BASE_INI = "/config/base.ini" 変更する意味はほとんど無い。 Maple本体側に移して、読み込み時に 無条件にWEBAPP_DIRからの相対パスと見なせば良いと思われる。 === PATH_SEPARATOR = : or ; webappに対して不変。 Maple本体側に移すべき。 === TEMPLATE_DIR = "/templates/" SMARTY_TEMPLATE_DIR = "/templates/" SMARTY_COMPILE_DIR = "/templates_c/" SMARTY_CONFIG_DIR = "/config/" SMARTY_CACHE_DIR = "/cache/" FLEXY_TEMPLATE_DIR = "/templates/" FLEXY_COMPILE_DIR = "/templates_c/" 同時に複数のテンプレートエンジンを使うことは滅多にないと思うので、 一つにまとめてしまっても良いと思う。 例えば VIEW_TEMPLATE_DIR = "/templates/" VIEW_COMPILE_DIR = "/templates_c/" VIEW_CONFIG_DIR = "/config/" VIEW_CACHE_DIR = "/cache/" のように。 ただ、同時に使用することも無いとは言い切れないので、 コードベースの設定用インターフェースを通して 個別に設定できるようにしておく。 === 残り。webapp内の設定ファイルに残して良いと思うもの。 [global-config] DEBUG_MODE = true MAPLE_DIR = maple ACTION_KEY = action DEFAULT_LOGGER = simpleFile [BASE_DIR] DOCUMENT_ROOT = "/htdocs" [WEBAPP_DIR] MODULE_DIR = "/modules" LOG_DIR = "/logs" COMPONENT_DIR = "/components" === entry.php内。 define('DEFAULT_ACTION', 'foo_bar_zoo'); define('LOG_LEVEL', LEVEL_TRACE); LOG_LEVELは設定ファイルに移しても良いと思う。 -- Hawk : { web site : http://blog.hawklab.jp/ }