Maple: コードベースの設定はある意味理に適っている
maple の「設定ファイル」にはいろんな種類のものがある。そのうち Maple の動作そのものの決定する設定ファイル「maple.inc.php」。これに関して、実はずいぶん前に「他の設定ファイルは INI ファイルなのに、なんでこれだけ PHP で define なのか」などという話があった。
これ、もし INI ファイルによる設定にしようとすると、今までできていた当たり前のことができなくなるということがわかった。
define('MAPLE_DIR', BASE_DIR . '/maple');
define('WEBAPP_DIR', BASE_DIR . '/webapp');
define('FILTER_DIR', MAPLE_DIR . '/filter');
define('CONVERTER_DIR', MAPLE_DIR . '/converter');
define('VALIDATOR_DIR', MAPLE_DIR . '/validator');
define('LOGGER_DIR', MAPLE_DIR . '/logger');
定数としてある値を使って、次の定数を決定している。
これを INI とかの設定ファイルでやる場合、定数・変数という概念はプレーンテキストには存在しないので、定数扱いのものを読み込んで、プログラム側で eval するなり置換するなりの処理を行うか、定数・変数の概念をなくしてしまって全てを記述するか、設定ファイル側に特別なルールを持って記述するか、といったことが必要になってしまう。
Maple のこの設定ファイルは、おそらく Mojavi の設定ファイルを参考に採用した形式であろうけど、これが凄い理に適っているというか、しっくりきているものになっちゃっている。プレーンテキスト形式のなんらかに設定ファイルに変えるとなると、かなり面倒というか、今まで当たり前のことができなくなる可能性があるのでどうしたもんかとか思ってるわけです。
トラックバック(0)
このブログ記事を参照しているブログ一覧: Maple: コードベースの設定はある意味理に適っている
このブログ記事に対するトラックバックURL: http://hatotech.org/mt-admin/mt-tb.cgi/575

コメントする