この投稿は5年と2ヶ月くらい前に公開したものです。そのため正常に動作しないかもしれないので、ご注意ください。ヒントPHPerの方からすれば何を今さらの話かもしれませんが、ふだんWordPress経由でしかPHPを触らないワタシにはなるなるなるーな話でしたので訳してみた。pattern)とは、過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化したものである。Wikipediaより、のことなので、(いわゆるフツーの)デザイナーの方はゆめゆめ勘違い召されませぬようよう。Practicesより、デザインパターンPHPのコードを扱うときに一般的なデザインパターンを利用することは、製品の保全性を保証するためのもっとも簡単な方法です。このセクションではプロジェクトへ新しい開発者が参加するときの障壁を低くする標準的な手法について説明します。名前空間すべての関数のコードは適切に名前空間化されるようにしましょう。自分たちのコードを論理的に整理したり衝突を避けたりするために、私たちはこれをグローバルな名前空間で行っています。...}もしそのコードがWordPress.orgのテーマやプラグインリポジトリへ一般公開するものなら、WordPress自身のPHPバージョン最低動作要件を満たす必要があります。}}この名前空間とスタティッククラスは構造が似ているため、どちらのスタイルのプロジェクトでも簡単に馴染むことができます(また、WordPressの最低バージョン要件が引き上げられても素早くPHP名前空間にアップグレードできます)。グローバルな名前空間に宣言されているものは名前空間自身も含めてすべて、一意性を確保するように書かなくてはなりません。ような名前空間は(たいていは)一意でしょう。確実に一意性を持たせるようにするには宣言に一意なプリフィックスを付けるのが簡単でしょう。オブジェクトデザイン最初に、もしある関数があるオブジェクトに固有のものではなければ、上で言及したように関数的な名前空間に含まれるようにすべきです。オブジェクトはよく設計され、アトミックで、そのファイルの最初のdocblockで完全にドキュメント化されるようにします。オブジェクト内のすべてのメソッドとプロパティ完全にドキュメント化し、オブジェクト自身に関連付けます。して明示するようにしましょう。フィールドやプロパティがないようにしましょう。構造とパターンシングルトンはおすすめしません。実際のところこのパターンを正当化する理由がありませんし、問題の修正よりもメンテナンス上の問題を多く引き起こします。コードを作成できて、そのアプリケーション全体を通して以前作成したコンポーネントを共有できる可能性があるときに使用します。グローバル変数は避けるべきです。オブジェクトをテーマやプラグイン全体に渡す必要がある場合、そうしたオブジェクトはパラメータとして渡すかオブジェクトファクトリを通して参照されるようにします。隠蔽されている依存(API機能、スーパーグローバル変数など)は各関数/メソッドもしくはプロパティのdocbock内にドキュメント化するようにします。このサイトの使用を継続することで、その使用に同意したとみなされます。コントロール方法を含む詳細についてはこちらをご覧ください。Carolina%d人のブロガーが「いいね」をつけました。