2016-10-10 1 views
1

は、次のようにします。長いHTMLをPHPで印刷するのは正しいですか?私は、例えば、エコーでPHPのクラスを介して長いHTMLを印刷するだけではなく、通常の方法でそれを印刷することが正しいかどうかを知りたい

Supose私は、ユーザークラスに

User.php 

class User { 

    private $name, $age; 

    public function __construct($name, $age) { 

     $this->name = $name; 
     $this->age = $age; 

    } 

    public function printProfile($name, $age) { 

    echo '<div class="panel panel-profile"> 

      Name: '.$this->name.'<br /> 
      Age: '.$this->age.'<br /> 
     </div>'; 
    } 
} 
を持っています

そして、私のprofile.phpは

profile.php 

<html lang="en"> 

<head> 

     <?php 

      require_once __DIR__ . "/Head.php 
      $head = new Head(); 
      $head->printPanel(); 

     ?> 

</head> 

<body> 
     <?php 

      require_once __DIR__ . "/Header.php 
      $header = new Header(); 
      $header->printPanel(); 

     ?> 
<div class="content"> 

     <?php 

      require_once __DIR__ . "/User.php 
      $user = new User(); 
      $user->printProfile(); 

     ?> 
</div> 
     <?php 

     require_once __DIR__ . "/Footer.php 
     $footer = new Footer(); 
     $footer->printPanel(); 

     ?> 
</body> 
</html> 

ようになります..だから私はそれが可能です知っているが、それを行うには、それが正しいかどうかはわからない、私はコードの適切な使用を作るのですか?処理速度に影響しますか? 私はすべてのページのコードを減らすことができ、クラスを変更するだけですべてのコードを変更できるので、この方法が好きです。また、私は

header.php 

<header> 

    some stuffs 

</header> 

クラスをせずに

<?php require_once __DIR__ . "/header.php ?> 

のようなものを作り、そこにすべてのコードを含めることができることを知っている。しかし、それはオブジェクト指向されていないので、私は本当にこのようにしないでください。

あなたが気づいたことがあるように、私の英語については申し訳ありませんが、私はそれが本当にうまくいきません。

+1

これは単なるコーディングスタイルです。物事を置く順序は、業績に何ら変わるものではありません。 – Barmar

+3

私は、ほとんどのプログラマーは、すべての 'require'ステートメントと変数代入を冒頭に置き、HTMLブロック内の関数を呼び出す方が良いと考えていると思います。 – Barmar

答えて

1

オブジェクトの方向はすべてではありません。手続き的に多くのことができるのであれば、それをしてください。あなたの場合、シンプルなウェブサイトでは、すべてのチャンクを別のファイル(例:Chunks.php)に保存することができます。追加したい部分ごとに1つの関数を使用します。ページ上の各要素にコンストラクタを持つ20種類のクラスは必要ありません。静的メソッドを使用してください。

コードスタイルについては

、あなたのページがレンダリングを通じて途中でクラッシュしないように、あなたが上に必要なすべて入れ:

<?php require_once __DIR__ . "/Chunks.php ?> 

<html lang="en"> 

    <head> 
     <?php Chunks::printHead(); ?> 
    </head> 

    <body> 
     <?php Chunks::printHeader(); ?> 
     <div class="content"> 
      <?php Chunks::printUserProfile(); ?> 
     </div> 
     <?php Chunks::printFooter(); ?> 
    </body> 
</html> 

シンプルで読みやすい、そしてあなたが30種類せずに期待するかを正確に行います20行のファイルがあなたの目を詰まらせます。

1

今日、エコーを使って画面に出力するのがより一般的です。

PHPエコーとプリントステートメントエコーとプリントは多かれ少なかれ です。これらは両方とも画面にデータを出力するために使用されます。

違いは小さいです:printは の戻り値1を持っているので、echoは戻り値を持たないので、式で使用できます。 echoは の複数のパラメータを取ることができます(ただし、このような使用はまれですが)。一方、printは1つの引数を とすることができます。エコーは印刷よりわずかに速いです。

あなたは、ページの上部に必要と輸入を追加する必要があることをhere

についての詳細を読むことができます。これはほとんどの人がやることです。

0

ありがとうございます!あなたの答えは非常に便利で、私はより多くの静的メソッドを使用し始めます。 私はjavascript、jquery、html、phpなどいくつかのsimplesウェブサイトをやっていますが、私はもっと大きなプロジェクトを開始しようとしています。私はいくつかのものを明確にしたかったのです。 あなたは言ったあなたの場合、単純なウェブサイトの場合...しかし、より大きなウェブサイトについてはどうですか?同じですか?

+1

あなたが意味することがより大きなものに依存します。あなたの場合は、あなたのビューをきれいに保つために、別のファイルからピースをロードするだけです。通常、オブジェクト指向のアプローチを正当化するためにオブジェクト固有のメソッドが必要です。 –

関連する問題