2016-09-08 12 views
-2

PHPクラスを理解するのに少し助けが必要です。 私はコードでは大丈夫ですが、その実装はより多く、クラスには何を入れるべきか、私は握りつぶしに苦しんでいます。PHPクラスの実装

ブログを例のサイトとして使用すると、ホームページ(または投稿ページ)に複数の投稿のリストが表示されます。

ますI:

A:単一のポストの詳細を取得し、呼び出すためにクラスを作成し、そのインデックスページでループ内。

B:ページのすべての投稿と同じクラス内の個別の投稿の詳細を取得して返すクラスを作成します。

C:ページの投稿のリストを取得するためのクラスを作成し、個人的な投稿の詳細を取得するための別のクラスを作成します。

私の腸は私にそのCを教えているので、サイトの他の部分(つまり個々の投稿ページ)に個別の投稿クラスを再利用して、クラスを再開して他の方法で投稿を得ることができます同様)。

ヒントをお聞かせください。 ありがとうございます!

+4

これはあまりにも広すぎます。私はOOPが何のために(そしてどのような)OOPの基礎を得るために、まず初歩的なPHP OOPチュートリアルを試してみることをお勧めします。 –

+1

この場合、2つのメソッドで1つのクラスしか必要ないかもしれません。リストを取得する最初のメソッドと詳細を取得する2番目のメソッド。 – follio

答えて

-1

技術的には、1つのクラスで行う必要があります。基本的に同じことを行う複数のクラスは必要ありません(わずかな変更)。以下の空クラスを考えてみましょう:

<?php 


    class Post{ 
     protected $post; 
     protected $lastPost; 

     const POST_TYPE_SINGLE = 1; 
     const POST_TYPE_LIST  = 2; 

     public function getPostList(){ 
      // IMPLEMENTATION CODE 
      // TO GET ALL THE POSTS EXISTING WITHIN YOUR SYSTEM... 
      // NO HTML RENDERING... 
     } 

     public function getPostByID($postID){ 
      // IMPLEMENTATION CODE 
      // TO GET RAW DATA FOR THE POST WITH THE ID $postID 
      // NO HTML RENDERING... 
     } 

     public function getDetailedView($post){ 
      // IMPLEMENTATION CODE 
      // TO GET ONE SINGLE POST AS A HTML RENDER USING THE $post... 
     } 

     public function getListView($posts){ 
      // IMPLEMENTATION CODE 
      // TO GET ALLS POSTS AS A HTML RENDER USING THE $posts... 
     } 

     public function getPostsByDate($date) { 
      // IMPLEMENTATION CODE 
      // TO GET ALL THE POSTS POSTED ON THE SAME DATE: $date.. 

     } 

     public function getPostByAuthor($author){ 
      // IMPLEMENTATION CODE 
      // TO GET ALL THE POSTS POSTED BY THE SAME AUTHOR: $author... 

     } 

     public function render($post, $postType=1){ 
      // IMPLEMENTATION CODE 
      // TO RENDER THE POST AS HTML STRING TO BE DISPLAYED AT THE FRONT-END... 
      // COULD BE USED TO RENDER BOTH DETAILED AND LIST VIEWS DEPENDING ON 
      // THE VALUE OF $postType... 
      if($postType == self::POST_TYPE_SINGLE){ 
       // CODE FOR HTML SINGLE POST RENDER 
      }else{ 
       // CODE FOR HTML LIST-VIEW RENDER     
      }    
     } 

    } 
関連する問題