2009-09-01 8 views
4

ホームページとリスティングページの両方にプロジェクトのリストを持つフリーランスサイト(scriptlanceと思う)を構築しています。私はOOPテクニックを実装するのは良いチャンスだと思った。標準のOOPスタイルのPHPプロジェクトを一覧表示するためのテクニック

私はプロジェクトのクラスを作成すると考えていましたが、とりわけ、ホームとリスティングページの関連コンテンツをエコーする機能を持つことになりました。私は提案した方法についていくつかアドバイスをしたいと思います。

class project { 

    ... 
    public function PrintSmallListing() {  
     echo "<div id="smallListing"> 
        <h2>Listing Title</h2> 
        <span>listing description</span> 
        ... 
       </div>"; 
      } 
    } 

が次に該当するページに、私は、結果をループは、クエリからのデータに基づいて、これらのオブジェクトの配列を作成し、データベースのクエリを実行します:

私のような何かのクラスを作成します。 次に、オブジェクトの配列をループしてプロジェクトのリストを表示し、

を呼び出すと、クエリがクラスに含まれないことになります。そうしないと、すべてのリスティングに対して別のクエリを呼び出す必要があります。

私の質問は、これはPHPでOOPを実装するための良い方法ですか、いくつかの練習は、この種の問題にOOPを使用する場合はありますか?あなたは個人的にどのようにそれをやっていますか?

答えて

4

オブジェクトを使用しているので、これはOOPです。オブジェクトを使用するものはすべてOOPです。

ただし、あなたはまったく間違って使用しています。この種のアプリケーションは今後も維持することができません。ページデザインを変更するには、100以上のファイルを見つけて、それぞれに適切な変更を加える必要があります。

本当にいいモジュラーなOOPサイトを作成してOOPでうまくいくには、cakePHPのようなオープンソースのMVC(model-view-controller)フレームワークを使用することを提案します。

MVCでも使用されている一般的な方法は、ビュー分離です。つまり、ビューはビジネスロジックに依存すべきではなく、ビジネスロジックはビューに依存してはなりません。このように、デザインが変わる時が来たら、あなたはそれを交換することができます。また、ビジネスロジックは、さまざまなhtmlタグやレンダリング関数ではなくなります。

+1

このコンセプトは、アプリケーションのphpだけでなく、フロントエンドでも理解することをお勧めします。このような構造/プレゼンテーション/ビヘイビアを分離するための記事を探してください:(それは古いですが、アイデアを得ると思っています)/http://www.mercurytide.co.uk/news/article/separation-structure-presentation-and -behaviour/ – GmonC

+0

素敵な記事です。私のお気に入りに追加しました。 Btw、類似トピックに関する別の良い記事:http://martinfowler.com/eaaDev/uiArchs.html – bezmax

+0

"オブジェクトを使用するものはすべてOOPです。"その1つの声明を見ると、私は事実上もっと多くの意見に同意できませんでした。 http://stackoverflow.com/questions/656836/explanation-of-re-usable-structures-in-oo-php/656975#656975 http://stackoverflow.com/questions/1343619/real-world-oop-example -php/1343881#1343881 http://stackoverflow.com/questions/1197616/can-you-help-me-understand-php-classes-a-little-better/1197679#1197679 –

関連する問題