General

さらにシンプルにするために その3

2008年11月26日

風邪で一日仕事を休み、布団に包まったりしてのんびりしながら一日考えてみた。

結論は、3つのメソッド、parse_skin, parse_template, parse_item は、さわる必要がまったくないということ。これら3つのメソッドは、copileメソッドおよびparse_compliedメソッドの実装をラップしている存在であり、インターフェースが違うだけで実質は同じメカニズムを利用しているためである。

(どうも、こういったことをまともに勉強したことが無く独学なので、自分自身で良く分かっていない部分があるのだが、仕方の無いところ。)

他方で、少し変更したいと思っている点は次の通り。skin, template, item用の変数を実装するための各クラスでの記述などが、現在の仕様では別々になっているのだが、これを一元化する。これにより、『template用のメソッドを見つけようとして見つからなかった場合にskin用のメソッドを呼び出す』などの記述が必要なくなり、各変数用のコードがシンプルに記述出来る。

今回の件について、少しまとめてみた。

1)Jeans CMSを利用する上で、スキン・テンプレート・アイテムはそれぞれ異なった概念(Nucleusと同じ)。
2)これらを呼び出すためのviewクラスでのメソッドは、parse_skin, parse_template, parse_itemと、3つ用意されている。
3)スキン・テンプレート・アイテムのパースは、viewクラスに記述された共通のメソッドを通じて実行される。
4)パースされたコードから各変数を記述するためのメソッドは、共通のメカニズムで呼び出される。

つまり、今回の変更で行おうとしているのは、4)の部分だけ。

コメント

Kat (2008年11月28日 00:15:36)

<%searchform%>, <%loginform%> などのフォーム表示系のスキン変数を、<%parsedinclude%>に統合できそう。parsedincludeの2番目以降の引数を、<%1%>, <%2%>などで挿入する形。

また、parsedincludeするファイルが見つからないときに、コアで用意するデフォルトファイルをインクルードできるようにする必要あり。

Kat (2008年11月28日 00:44:23)

上記の件、<%loginform%>などにあるデフォルトの引数を何とかする必要あり。<%1(xxx)%>のように記述するか?

コメント送信