私は、Object Oriented PHPでギャラリースクリプトであるCMSを作っています。とにかく、問題は、私がオブジェクトを作るための基本的なレイアウトを持っていることです。そして、私が一緒に組み立てる必要があるポイントまで、私はこれをどうやって行うのが困っています。CMSはどのように構造化されていますか?
私は本質的にナビゲーション、データ、ギャラリー、およびモジュールクラスです。モジュールはページ、カテゴリなどを表します。問題はギャラリーが画像を出力し、モジュールがページのデータを与え、ナビゲーションが(あなたが推測する)ナビゲーションを作成するということです。あなたは写真を手に入れます。インデックスページで
、私は(これは変更されますが、それは私がそれを設定するために始めていた方法のための例示である)は、基本的にこれをやって終わる:
$navigation = new Navigation();
$navigation->top();
$page = new Module();
$page->basicPage($_GET['m']);
basicPageは()いくつかのことを行います主にこれが問題になります。
などです。
basicPage()を呼び出すと、設計者や選択肢をほとんど制御できないという問題が発生します。あなたが見たように、それはthumbGalleryであり、それは完全な画像を許さず、サムネイルのサイズを設定することさえできません(サムネイルのサイズを自分で呼び出すことができます) 。
私はこの問題を解決する方法をいくつか考えました。私はこれらの基本的なページを持っていませんが、私はデザイナーにWordpressのようなテンプレートを作りました。私はこのソリューションを嫌っています。なぜなら、それは徹底していても、設計プロセスを複雑にするからです。私はすべてが制御されるようにしたい、そして一つの方法です。もちろん、あなたはデザイナーとしての要素や他のいくつかのトリックに「表示:なし」することができますが、Wordpressがそれをする複雑な方法を使わずに、たくさんのことをする能力を持たせたいと思います。
私の質問は、どのようにシンプルで柔軟性のバランスを取るのですか?
どんな助力でも、アイデアは高く評価されます。ありがとう。
編集:私は言及を忘れた。問題は、単にこのインデックスのすべてがこのデータを持っていることからです。そうでなければ、if/elseなどの多くをやらなければなりません。そして、私は本当にこれを手続き型プログラムにしたくありませんでした。物事がダウンして、我々は良いです。モジュールはギャラリーとページの両方を表します。ほとんどのページには画像が添付されておらず、カテゴリには画像がありますが、必ずしもテキストではありません。 thumbGalleryを呼び出すとエラーが発生し、単なる情報ページです。情報ページを呼び出してカテゴリである場合、エラーを回避するために画像は表示されません。私は、基本ページと呼ばれるもので一緒に構築することができましたが、私が以前に指摘したような問題は、デザイナーがPHPを混乱させることなくどれだけの自由を制限するのかということです。 PHPに、残念なことに。私はデザイナーですが、私はあまりにもプログラムが起こります。
[Front Controller](http://martinfowler.com/eaaCatalog/frontController.html)デザインパターンを見てください。 – Smurf64