ログ日記

作業ログと日記とメモ

kaedeについてメモ

以前のエントリに反応をもらいました。
http://blog.hawklab.jp/item-111.html

PEAR_ErrorStackならpushメソッドで配列が使える他に、ContextCallbackを使うことでエラー発生元とは無関係な情報を持ってくることもできる。フレームワークで言うと、エラー発生時に実行中だったアクション名を持ってくるとか、そういう使い方がある。

なるほど。例外処理的な使い方も出来るからか。
私は例外処理が好きじゃないし上手い使い方が思い浮かばないので意識していなかった。

あるコンポーネントでエラーが起こった場合、他のコンポーネントやレイヤーでその結果が使われたりエラーが揉み消されたりする可能性があるって気がしてならないから、エラーは出来る限りエラー発生の周辺で片付けたい。
好みの問題かもしれないが・・trigger_error()+set_error_handler()で解決できないような複雑な対処法ってあまり考えたくないな。

コンポーネントの独立性を保つということは、全ての機能をコンポーネント内で完結するということであり、結果として各コンポーネント内に機能の重複が起こりやすくなるからだ。

それはそうなんだけど、例えば数ページのサイトを作っていてバリデーションのクラスだけ使いたいっていうとき。そんなときにErrorStackのクラス名や独自ログクラスがハードコーディングされてたらかなり面倒だ。
だから便利でよく使われるコンポーネントほど、何にも依存しないでほしいと思うのだ。
ユーザがフレームワークを使って作るシステムでは、ErrorStackでも独自のエラー処理クラスでもごりごり使って構わない。しかしコアとなる部分ではもっと単純化した方がいいんじゃないだろうか。


ログクラスも必要なのかなって思う。Mapleのソースはあちこちでログクラスを呼び出してあって移植しにくいものになってた。


あとコアで使われてるエラーとログクラスが分かり難い。
コアで使う関数はprintk()でユーザが使う関数はprintf()的な区別があってもいいんじゃなかろうか。



あまりまとまった文章じゃないけれども・・この辺で。
今は論文を書かないといけないのでPHPをあまりいじれない。
WEB+DB PRESSも日経の雑誌も読まなきゃなぁ。。