PEAR::Calendarを利用する場合には、あなたが解決しとうとしている問題に関する全部で12のクラスを使うことができます。 これらのクラスは日付クラス、tabularの日付クラス、valideのクラス、decorationのクラスに分類できます。
基本的で日常的な日付を提供します。これらのすべてはCalendarここで定義されているメソッドを供給するサブクラスです。
Calendar_Year - 年のクラスで、Calendar_Month, Calendar_Month_Weekdays と Calendar_Month_Weeksオブジェクトを構築することができます。
次のように利用します。
|
Calendar_Month - 月のクラスで、Calendar_Dayオブジェクトを構築することができます。
次のように利用します。
|
Calendar_Day - 日のクラスで、Calendar_Hourオブジェクトを構築することができます。.
次のように利用します。
|
Calendar_Hour - 時間のクラスでCalendar_Minuteオブジェクトを構築することができます。
次のように利用します。
|
Calendar_Minute - 分のクラスでCalendar_Secondオブジェクトを構築することができます。
次のように利用します。
|
Calendar_Second - 秒のクラスです。他のオブジェクトは構築しません。
次のように利用します。
|
tabular形式で整形されたカレンダーを構築します。これらはすべてCalendar のサブクラスでここで定義されているメソッドを提供します。
Calendar_Month_Weekdays - Calendar_Dayオブジェクトを構築し、一ヶ月をtabular形式で表示するisFirst(), isLast() と isEmpty() のstatesを用意します。
次のように利用します。
|
Calendar_Month_Weeks - Calendar_Weekを構築します。tabularな週を含む、一ヶ月を表します(どのような週の表現があるかはFAQ を参照してください)。
次のように利用します。
|
Calendar_Week - Calendar_Dayオブジェクトを構築します。必要なら isEmpty() メソッドを用意し、一ヶ月のtabularな週を表します (i.e. ここから7日間を取得できます)。
Include with
|
日付をvalidateするの使用します。Calendar はすべての日付に簡単なチェックを実行するisValid()メソッドと細かなvalidateのためのCalendar_Validatorのインスタンスを返すgetValidator()を提供します。
Calendar_Validator - これはあなたのコードで直接インスタンスを作成するものではありません(明確に include / create する必要があります)。しかしCalendar::getValidator()からの返値のかわりに、Calendarのサブクラスを呼び出せます。このクラスは日付を細かくvalidatし、正確にどこが悪かったかを検出するのに使用できます(簡単なvalidateなら日付オブジェクトやTabular日付オブジェクトに対してisValid()メソッドを呼び出すことだけで、正しい値で作成されたかどうかを知ることができます)。
Calendar_Validation_Error - validateエラーを表します。このクラスはどこが悪かったのかを検出するメソッドを提供します。利用できるメソッドはgetUnit()(e.g. 年か月を返します), getValue() (失敗している値を返します),getMessage() (validateエラーメッセージを返します)およびここまでに述べた3つのメソッドをまとめた値を返すtoString()です。デフォルトのvalidateエラーメッセージは英語ですが、コードで再定義できるCALENDAR_VALUE_TOOSMALL と CALENDAR_VALUE_TOOLARGEの定数を持っています。
明示的に拡張しなくともメインのカレンダーオブジェクト(Calendarのサブクラス)に機能を加えるメカニズムを提供します(フィールドを偶然上書きしてしますリスクも回避します)。decoratorを作成するときは、コンストラクターにカレンダーオブジェクトのインスタンスを渡します。オリジナルのカレンダーオブジェクトを呼び出すのとまったく同じようにdecoratorを呼び出すことができるようになります。このことでカレンダーメソッドの"overwrite"ができるようになり、また新しいメソッドを追加したり、同じカレンダーオブジェクトに複数のdecoratorを適用したりすることができるようになります。Decoratorはカレンダーがレンダリングされているループに"挿入"したり(選択かCalendar_Decorator_Wrapperを経由して)、もしくは、内容の出力を変更したりすることができます。(e.g. 数字の月名を文字の月名に変換したりします)。
PEAR::Calendarはよくある問題の解決を助けるいくつかのdecoratorの実装を提供します。これらは誰にでも適用できるようにデザインされてはいません。代わりに、必要に合わせて使用するオプションのコードを提供しています(あなたが使用しないコードを読み込むのに伴うコストパフォーマンスを気にするなら使用しないでください)。
Calendar_Decorator - あなた自身で拡張しなければならない基本のdecoratorクラスです。decoratorされたカレンダーオブジェクトと同じAPIを提供し、このクラスを通じて簡単に呼び出すことができます。例;
|
Calendar_Decorator_Uri - URLの作成を助けるdecoratorを提供します(例えば next / prev URLです)。
次のようにインクルードします。
|
Calendar_Decorator_Textual - カレンダーオブジェクトから文字の月名と曜日を取得しることを助けます。
次のようにインクルードします。
|
Calendar_Decorator_Wrapper - あなたが使用しているカレンダーオブジェクトの子クラスにdecoratorを追加のを助けることを意図したクラスです。build()が呼び出され、構築された後に、decoratorの子クラスをラップし、fetch() または fetchAll() が呼び出された時点を指定します。
次のようにインクルードします。
|