Hawk
w3l_admin****@hawk*****
2005年 10月 20日 (木) 18:25:26 JST
Hawkです。 気が回らなくてすいません、まさしく私が [Maple-dev: 65] Re: インジェクションの簡素化 で書いたような「イメージの違い」を並列・共存していくために、 こちらの提案をなされたんですよね……失礼致しました。 (これすら思い違いだったらどうしようもないですが)。 確かに、コアユーザー向けの拡張ポイントを 早めに確立してしまった方が良いのかも知れません。 誰もが万人向けの拡張をしたいわけじゃないですからね。 そういう拡張を安全に組み込めるのは、 DIContainerを中心に据えたMapleの強みだと思いますし。 KUMAKURA Yousuke wrote: > 熊倉です。 > > Controller.class.php 内で行われる base.ini を扱う処理なのですが、現在 > core ディレクトリ内にも base.ini が提供されているので、それをデフォルト > で使用することを前提にした上で、config ディレクトリでの base.ini にあた > る設定ファイルの振舞いを変更してはどうかなというお話です。(長いですが) > > > いきなり diff を示すのもアレですが、変更内容のサンプルをば。 > > @@ -105,6 +105,10 @@ > function &_createDIContainer() { > $log =& LogFactory::getLog(); > > + if (!defined('BASE_INI')) { > + define('BASE_INI', dirname(__FILE__) . '/base.ini'); > + } > + > if (!@file_exists(BASE_INI)) { > $log->fatal("設定ファイルが存在しません", > "Controller#_createDIContainer"); > return; > @@ -112,6 +116,14 @@ > > $config = parse_ini_file(BASE_INI, TRUE); > > + if (defined('PLUGINS_INI') > + && @file_exists(PLUGINS_INI) > + ) { > + $config = array_merge($config, > + parse_ini_file(PLUGINS_INI, TRUE) > + ); > + } > + > if (count($config) < 1) { > $log->fatal("設定ファイルが不正です", "Controller#_createDIContainer"); > return; > > > まず core ディレクトリ内に今も存在している base.ini を使用して、config > のリスト ($config) を作成するようにします。 > > 次に、config ディレクトリに PLUGINS_INI (名前適当) にあたる設定ファイル > が存在していれば、先に作成した config リスト とマージします。 > > PLUGINS_INI にあたるファイルがなければ、今までどおりの動作です。 > つまり config/base.ini が必要なくなります。 > > 仮に、config ディレクトリ内に PLUGINS_INI = plugins.ini というファイル > があって、 > > [ConfigUtils] > name = ConfigUtils > path = path/to/ConfigUtils.class.php > > とだけ記述していたのであれば、core 処理内で使用される ConfigUtils は > core/ConfigUtils.class.php から path/to/ConfigUtils.class.php に上書きさ > れて使用することになります。残りはデフォルトのものが使用されます。 > > > この変更によって、通常ユーザが意識しなければならないファイルが減少するだ > けでなく、機能変更 (使用するファイルの変更) できる環境の明示化が行えるの > ではないかと思います。 > 現在の内容でも、機能変更したいユーザは config/base.ini をいじれば可能な > のですが、core/base.ini が存在しているので、いっそこういう形に変更するの > はどうでしょうか。 > > > この変更に加えて、拡張機能を設置するルール (場所、ネーミング) なんかを決 > めていただけると、好き勝手やらせてもらっている私は嬉しいです ;) > (core/extension/<name>/ConfigUtils.class.php に置く、とか) > > 受入口があれば、今後も外部パッケージの作成者が増えるんじゃないでしょうか。 > ・より機能豊富・だけど太っちょ core > ・最小機能・超軽量 core > など色々レパートリーも。。。管理をどうするかですが。 > > > _______________________________________________ > Maple-dev mailing list > Maple****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/maple-dev > -- Hawk : { web site : http://www.hawk.34sp.com/ , diary : http://d.hatena.ne.jp/hawkring/ }