パッケージ概要

パッケージ概要 --  カレンダークラスの概要

パッケージ概要

PEAR::Calendar には全部で 12 のクラスがあり、あなたが解決しようとしている問題に応じてそれらを使い分けます。 これらのクラスは日付クラス、表形式の日付クラス、バリデーションクラス、デコレーションクラスに分類できます。

日付クラス

基本的で日常的な日付を提供します。これらはすべて Calendar のサブクラスで、以下のメソッドが提供されています。

表形式の日付クラス

表形式で整形されたカレンダーを構築します。これらはすべてCalendar のサブクラスで、以下のメソッドが提供されています。

バリデーションクラス

日付の妥当性を検証するために使用します。Calendar の提供する検証メソッドは 2 種類あります。isValid() は、任意の日付に対する簡単なチェックを行います。getValidator() は、より詳細な検証を行うための Calendar_Validator のインスタンスを返します。

デコレータ

カレンダーオブジェクトの本体 (Calendar を継承したクラス) に機能を追加するものです。明示的にそれらを拡張する必要がなくなり、フィールドを偶然に上書きしてしまうリスクも回避できます。デコレータを作成するときは、そのコンストラクタにカレンダーオブジェクトのインスタンスを渡します。すると、オリジナルのカレンダーオブジェクトを呼び出すのとまったく同じようにデコレータを呼び出すことができるようになります。これによってカレンダーのメソッドを "上書き" することができるようになります。またそれだけではなく、新しいメソッドを追加したり、同一カレンダーオブジェクトに複数のデコレータを適用したりすることもできるようになります。デコレータを使用する場面としては、カレンダーがレンダリングされるループに (選択、あるいは Calendar_Decorator_Wrapper デコレータを使用して)「注入」したり、出力内容を変更したり (例えば 1 => January のように月の表現法を数字から文字に変換する) といったものがあります。

PEAR::Calendar では、ありがちな問題に対応するためのデコレータの実装をいくつか提供しています。これらは万人向けに設計されているわけではなく、必要に応じて使用できるようにオプションのコードとして提供されています (これにより、使いもしないコードをパースするために速度が低下してしまうといった現象を避けています)。