#norelated * PHP Commons [#o8d95976] -PHP Commonsは、PHPのより良いコーディングをサポートするための共通ライブラリ群です。 -[[Apache Commons>http://commons.apache.org/]]の中でPHPでも必要度が高いものからPHPライクに移植していきます。 ** News [#i4d7009d] -Smarty-2.6.22 を[[PHP Commons PEARチャンネル>PEARチャンネル]]に追加 - 2009/3/15&ref(images/new.png,nolink); -S2Dao-1.1.2.1([[独自パッチ適用版>S2DaoTips]]) を[[PHP Commons PEARチャンネル>PEARチャンネル]]に追加 - 2009/4/30&ref(images/new.png,nolink); -Smarty-2.6.22 を[[PHP Commons PEARチャンネル>PEARチャンネル]]に追加 - 2009/3/15 -[[Commons 1.0.3>インストール]] リリース - 2008/9/19 - 正規表現ユーティリティクラスを追加。2つのバグフィックス。直接pearコマンドで[[インストール]]できます。リリースノートは[[こちら>リリースノート1.0.3]]。ダウンロードする場合には、[[こちら>http://sourceforge.jp/projects/phpcommons/releases/32949]]。 -log4php-2.0.0.20080907 を[[PHP Commons PEARチャンネル>PEARチャンネル]]に追加 - 2008/9/7 - 最新スナップショットです。[[既知の問題(#1、#2、#3)を修正する独自パッチ>log4php既知の問題]]が当てられています。直接pearコマンドで[[インストール]]できます。ダウンロードする場合には、[[こちら>http://sourceforge.jp/projects/phpcommons/files/?release_id=28823#28823]]。 -Smarty-2.6.20 を[[PHP Commons PEARチャンネル>PEARチャンネル]]に追加 - 2008/9/6 RIGHT:[['''バックナンバー'''>Newsバックナンバー]] ** インストール [#b6ac25db] # pear channel-discover phpcommons.sourceforge.jp/pear # pear install commons/Commons # pear install commons/log4php-beta ** [[ドキュメント]] [#r817d8ad] -[[APIドキュメント>http://phpcommons.sourceforge.jp/apidocs/1.0.3/]] - [[APIドキュメント(テストケースを含む)>http://phpcommons.sourceforge.jp/apidocs-all/1.0.3/]] - [[ユニットテスト>http://phpcommons.sourceforge.jp/reports/tests/1.0.3/]] - [[カバレッジ>http://phpcommons.sourceforge.jp/reports/coverage/1.0.3/]] ** 基本方針 [#z59e67cb] +コーディングの良い習慣を引き継ぎ、容易にベストプラクティスを実現できるように、Apache Commons のインタフェイスを可能な限り変更せずに移植します。 +型付け(主にタイプヒンティング)については、PHPには暗黙に継承されるルートクラスが存在しないので、クラスタイプの指定は''緩め''に、インタフェイスタイプの指定は''通常通り''行うものとします。array によるタイプヒンティングは、5.1.0からの導入なので、互換性を考慮して使用しないものとします。 +文字列処理に関係するすべてのメソッドが、マルチバイト文字列モジュール(mbstring)が有効な環境では、''透過的にマルチバイト文字列を正しく扱える''ようにします。マルチバイト文字列は、内部エンコーディングの設定に基づき扱われるものとし、メソッド単位でのエンコーディング指定は行わないものとします。 +文字列の扱いは、PHPの基本型である ''string (オブジェクト型ではない)''を基本とします。複雑な文字列処理の必要から便宜的に文字列バッファクラス(Commons_Lang_StringBuffer)も用意していますが、Javaのように文字ストリームを扱えるわけではないので、パフォーマンスに寄与することはありません((実験的に文字列クラス Commons_Lang_String も実装していますが、これを使うメリットはほとんどないでしょう。))。 +コレクションの扱いは、PHPの基本型である ''array (オブジェクト型ではない配列およびハッシュマップ)''を基本とします。オブジェクトとしてコレクションを提供するかは一時保留とします。 +DIコンテナのコンポーネントとして利用できるように、インスタンスを生成する必要のないユーティリティクラス(*Utilsなど)にも public なコンストラクタメソッドを用意し、さらにそのインスタンスを取得しやすいように、静的な getInstance メソッドを用意しています((このメソッドは、ユーティリティクラスを使用したコードをコンパクトに記述するためのものです。常にこのメソッドは Singleton なインスタンスを返すので、''このメソッド経由でのみインスタンスを取得する限り''では、無駄なインスタンスは生成されません。もちろん、通常通り静的にメソッドをコールする方が経済的ですが、その都度長いクラス名を記述しなくてはなりません。))。 +Javaのプラットフォームについては、必要な範囲で移植するものとします。