2017-08-24 2 views
0

私はPHPを使ってHTMLを出力しやすくするいくつかの関数を持っています。私に簡単な関数によるHTMLの手続き型生成PHPで

function div($id = '', $class = '', $content = '', $attr = ''){ 
    $div = '<div'; 
    $div.= ($id=='') ? '' : ' id="'.$id.'"'; 
    $div.= ($class=='') ? '' : ' class="'.$class.'"'; 
    $div.= ($attr=='') ? '' : ' '.$attr; 
    return $div.'>'.$content.'</div>; 
} 

、このような機能は、Web開発を容易にするように見える彼らは私がウェブサイトのコンテンツではなく、ウェブサイトのHTMLを生成するに集中できるようです。マテリアライズまたはブートストラップグリッドシステムがロードされているWebサイトで大きく見えるHTMLを出力しやすくする他の関数(row()、col()、chart())でこの関数を使用します。

は今、私は大きなウェブサイトは、この多く、何度も同じよう機能を使用することを理解しています。潜在的にオーバーヘッドを発生させる。

えはそれをねじ込みます。あなたのウェブサイト用にHTMLを生成しやすくするために、このようなものを使用しますか?それとも私はその

echo '<div class="row"><div class="col m6"><div class="card">'.$content.'</div></div></div>'; 

は何かが応答するの追加効果とうまく表示する必要があるたびに入力するためにお尻の痛みです思考のために狂気のですか?

ちょうど私が推測するいくつかの意見を探しています。私は周りを探索して、私が思っている満足できるものは見つけていません。これが私の最初の質問です。

ありがとうございました

+1

大きなウェブサイトでは、そのような関数を使用することはありませんでしょう。大規模なサイトとシステムは、プレゼンテーションとロジックを分離するフレームワーク上に構築されています。 Symfony、Laravel、Yii、Zendのようなフレームワークをチェックしてください。 – user2182349

+0

https://github.com/ryancramerdesign/regular/blob/master/site-regular/templates/_uikit.phpをご覧ください – DaveP

答えて

0

私は非常に似たようなことをしていました。例えば、私のnavbarテンプレートはnav()と呼ばれる関数内にあり、私は各ページの先頭に戻り値を出力します。しかし、今のところあなたのためにこれを行い、フロントエンド全体をモジュール化できる非常にクリーンな構文を持っている多くの素晴らしい "テンプレートエンジン"があります。

私のお気に入りはBladeです。

あなたが興味を持っている場合はLaravel PHPフレームワークにあらかじめ内蔵されているが、それはまた、スタンドアロンとして使用可能です。

//extends will essentially derive your basic layout(nav and such) from a template of yours 
    @extends('layouts.main') 
    //a section tag will match put the inside code in the matching tag on your main layout 
    @section('content') 
     //blade's if statement syntax 
     @if(true) 
      //blade's foreach loop syntax 
      @foreach($variables as $v) 
       //the shorthand notation for php echo is double braces 
       {{ $php_variable }} 
      @endforeach 
     @endif 
    @endsection 
関連する問題