PHP Commons

  • PHP Commonsは、PHPのより良いコーディングをサポートするための共通ライブラリ群です。
  • Apache Commonsの中でPHPでも必要度が高いものからPHPライクに移植していきます。

News

インストール

# pear channel-discover phpcommons.sourceforge.jp/pear
# pear install commons/Commons
# pear install commons/log4php-beta

ドキュメント

基本方針

  1. コーディングの良い習慣を引き継ぎ、容易にベストプラクティスを実現できるように、Apache Commons のインタフェイスを可能な限り変更せずに移植します。
  2. 型付け(主にタイプヒンティング)については、PHPには暗黙に継承されるルートクラスが存在しないので、クラスタイプの指定は緩めに、インタフェイスタイプの指定は通常通り行うものとします。array によるタイプヒンティングは、5.1.0からの導入なので、互換性を考慮して使用しないものとします。
  3. 文字列処理に関係するすべてのメソッドが、マルチバイト文字列モジュール(mbstring)が有効な環境では、透過的にマルチバイト文字列を正しく扱えるようにします。マルチバイト文字列は、内部エンコーディングの設定に基づき扱われるものとし、メソッド単位でのエンコーディング指定は行わないものとします。
  4. 文字列の扱いは、PHPの基本型である string (オブジェクト型ではない)を基本とします。複雑な文字列処理の必要から便宜的に文字列バッファクラス(Commons_Lang_StringBuffer?)も用意していますが、Javaのように文字ストリームを扱えるわけではないので、パフォーマンスに寄与することはありません*1
  5. コレクションの扱いは、PHPの基本型である array (オブジェクト型ではない配列およびハッシュマップ)を基本とします。オブジェクトとしてコレクションを提供するかは一時保留とします。
  6. DIコンテナのコンポーネントとして利用できるように、インスタンスを生成する必要のないユーティリティクラス(*Utilsなど)にも public なコンストラクタメソッドを用意し、さらにそのインスタンスを取得しやすいように、静的な getInstance メソッドを用意しています*2
  7. Javaのプラットフォームについては、必要な範囲で移植するものとします。

*1 実験的に文字列クラス Commons_Lang_String も実装していますが、これを使うメリットはほとんどないでしょう。
*2 このメソッドは、ユーティリティクラスを使用したコードをコンパクトに記述するためのものです。常にこのメソッドは Singleton なインスタンスを返すので、このメソッド経由でのみインスタンスを取得する限りでは、無駄なインスタンスは生成されません。もちろん、通常通り静的にメソッドをコールする方が経済的ですが、その都度長いクラス名を記述しなくてはなりません。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-04-30 (木) 21:07:43 (3769d)