Hawk
schol****@hawkl*****
2006年 11月 26日 (日) 09:31:55 JST
Hawkです。 GlobalFilterセクションによる指定が分かり難いのは その通りだと私も思います。 そして木内さんが今回提案されたような形も、検討されたことはありました。 ではなぜ現状のような仕様になっているかというと、 ちょっとした”歴史的な事情”があるのです。 実は、そもそもフィルタの継承機能は、 作者kunitさんも想定していなかった、全くの偶然による産物でした。 それを「これは結構便利だぞ」と気付いた一部の人(私など)が、 概念を整理して、有用性をアピールして、 ようやく3.2で公式にサポートするに至った、というのが実状です。 そのため3.2開発の段階では、 あまり設定ファイルを複雑にするような形で導入するわけにはいかず、 3.1以前との互換性を最優先する形になりました。 果たして設定ファイルを複雑化するに値する機能なのかどうか、 検証する段階にあったということです。 ということなので、議論はまさにこれからです。 今回の提案がいただけたことで、少なくとも議論・検討していく段階には 入ったかと思うのですが、いかがでしょうか?>他の開発者の皆様 …… 以下、内容についての返信です。 まず確認しておきたいのですが、 > > ## Global登録 > > [Filter @ global] > > ## Local登録(ディフォルトはこれ) > > [Filter @ local] ここでいうglobalとは、3.2で言えば 「GlobalFilterセクションに指定した場合の動作」 もしくは 「最下層のmaple.iniで指定した場合の動作」 で、ConfigUtilsのメソッドで言えば 「_mergeOrAddによる登録」 で良いでしょうか。 そしてlocalとは、3.2で言えば 「GlobalFilterセクションが存在し、かつ指定されなかった場合の動作」 で、ConfigUtilsのメソッドで言えば 「__preserveや_mergeOrPreserveによる登録」 で良いでしょうか。 というのも、Maple3.1以前には後者のような概念は無く、 global/localのような区別も存在しなかったので……。 後者をlocalと呼ぶ、というのであれば、それはそれでOKです。 それを公式の呼び名にしてしまっても良いと思います。 それを踏まえての質問点です。 ・[Filter @ local:merge] がデフォルトとのことですが、 そうなるとMaple 3.1とも3.2とも互換性がないことになります。 互換性を保つべきかという議論はさておき、 この認識で正しいでしょうか。 ・最下層のmaple.iniについても [Filter @ local:merge] が デフォルトなのでしょうか。 最下層のmaple.iniはその性質上、localが意味を持たないと思われますが? まあこのあたりはコードを見れば一目瞭然かも知れないので、 よろしければ添付ファイルでMLに送ってみてください。 -- Hawk : { web site : http://blog.hawklab.jp/ }