私はPHPを使って小さなCMSを開発する必要があり、今私は構造を理解しようとしています。静的メソッドかどうか
CMSは一連の機能を使用して生成されます。データベース機能、キャッシング機能、国際化などの機能
私はこのようにそれを行うには考えていた:
は大きな「サイト」クラスの機能は非静的メソッドの一部を作ります。そうすれば、そのクラスの複数のインスタンスを実行できます。私はここでの主な問題は、CMSが複数の小規模なサイトを管理することができるはずということですけれども...
または静的メソッド
と別々のクラスに機能を分割することを行う必要があるだろうかわかりません、ただ一つではない。だから私はすべてのメソッドを静的にし、 "サイトスイッチ"機能を追加するか、私が管理したいサイトに基づいてインスタンス化する通常のオブジェクトにします。
これらはどれが最適ですか?
を参照してくださいクラス「1内のすべての」モノリシックを作ることはありません。さまざまな理由で悪い習慣です。クラスの実装に関する詳細については、[この質問の質問](http://stackoverflow.com/questions/9556899/database-class-design)をご覧ください。 – Bojangles
これはまったく新しいプロジェクトですか?もしそうなら、何らかのMVCフレームワークを使用しないのはなぜですか?それらのほとんどはあなたの質問で言及したようにうまく動作します。 – B4NZ41
*「どれが最良の選択肢ですか?」*ソフトウェアエンジニアリングについての本格的な議論なしには答えが難しいです。しかし、私はこれを言うでしょう:しばしば静的は悪です**。 [ここにはPHPベースの理由の説明があります](http://kore-nordmann.de/blog/0103_static_considered_harmful.html)、ここでは[PHP開発を目標としていない素晴らしいメタファーを持つ別のもの](http:// www .daedtech.com/static-methods-time-to-hit-rock-bottom)。私は強く依存性注入のために静的を避けることをお勧めします。自分でアップグレードしたい場合は、自分でアップグレードしてください。そうでない場合は、フレームワークを試してみてください。 – rdlowrey