2005-12-01から1ヶ月間の記事一覧

PEAR::Log::priorityToString() -- ログレベルの文字化

ログレベルやハンドラ、実際のログ書き込みメソッド(log()等)をさしおいて、まずはあまり重要でないPEAR::Logの基底publicメソッドをつぶしておきます。 まずはpriorityToString()。 PEAR::Logのログレベル定数値をStringで表すためのメソッドです。 通常は…

PEAR::Log::singleton() -- Singleton Method

GoFデザインパターンのうちのひとつであるシングルトンパターンはこのPearLogにも実装されています。 ただし、1クラス1インスタンスではなく、`全く同じ引数群`につき1インスタンスです。ここがこのSingletonの使い勝手の悪いところです。 引数はfactory(…

PEAR::Log::factory() Factory Method

PEARの中で好んで使っているものにLogがあります。 ロギングの実装は面倒ですから。 ところで、このPEAR::Logは日本語のマニュアルが用意されていません。*1 http://pear.php.net/manual/ja/package.logging.log.php ですので、何回かにわけてLogのことにつ…

タイプヒンティング使用上の注意

intやstringといったプリミティブ型には使用できないタイプヒンティング。*1 そんなタイプヒンティングを使っていく中で知ったことを書き残しておきます。 とは言っても、マニュアルページの`User Contributed Notes`に書かれていることの焼き直しです。 *1:…

PHP5はimmutable不可能?

元々マニュアルで「PHP 5はオブジェクト指向言語ではありません。」と宣言しているのだから、仕方ないといえば仕方ないんですが。 privateで宣言したメンバを守ってくれる。 finalで宣言したクラスは拡張できない。 privateコンストラクタ宣言可能 こういう…