Nedir php kullanarak şablonları oluşturmak için en iyi yolu nedir?

4 Cevap php

Ben şablonları toplar ve tüm şablonları bağladıktan sonra nihai çıkış görüntüleyen bir sınıf var.

class Template{

$private $output = '';

public function Load_Template($template, $data = null){
    ob_start();
    include($template);
    $this->output .= ob_get_clean();
}

public function Display($add_footer = true){
    echo $this->output;
}

}

Şimdi, Şu anda benim şablonları bu gibi bir şey.

<h1><?php echo $data['name']; ?></h1>

veya döngüler içeren daha karmaşık olanlar daha benziyorsun

<ul>
  <li>
  <?php foreach($data as $user){ ?>
   <h1><?php echo $user['name']; ?></h1>
  <?php } ?>
  </li>
</ul>

Actually theres way more data than that in them, but im sure you guys get the point. Now, I have heard people say thats it better to have templates like this

<h1>{name}</h1>

veya

<ul>
  <li>
   <h1>{name}</h1>
  </li>
</ul>

and then use a str_replace function... Now, if im using a foreach loop, how would I accomplish something like this... should i alter my class, and if so can i get some ideas as to how... And do you guys suggest using templates with

4 Cevap

Smarty çok gereksiz! Bir sayfa kesme fonksiyonu ile sınıf yeterlidir.

Bu "{} etiketleri" türü şablon için bir çok popüler bir motoru var: Smarty

Her şablon dili sorunu yaklaşan kendi yolu vardır. Sen, bunun yerine sıfırdan kendi şablon dili yazma, Smarty gibi orada standart olanlardan birini kullanabilirsiniz.

Kendi yazıyorsanız, size en az sizin döngüler ve conditionals ifade sağlayacak bir yapı gerekir. Ben daha önce kullanılan seen basit bir yaklaşım gibi bir şeydir:

<!-- BEGIN conditional_or_looped_block_named_foo -->
Stuff that may appear zero or more times
<!-- END conditional_or_looped_block_named_foo -->

Sözdizimi bir dilden diğerine, tabii, yaygın olarak değişir, ancak temel yaklaşım aynı: Eğer izole ve tekrar (veya omit) istediğiniz kod bölümünü çevreler bazı biçimlendirme var.

This should give you an idea: http://www.handyphp.com/index.php/PHP-Resources/Handy-PHP-Tutorials/Creating-Your-First-Template-Driven-PHP-Website-Part-2.html

Ben hızlı bir arama yaparak buldu, ne soran yapmak için kod var, bu arama ve oluşturduğunuz basit değişkenler ile yerini alıyor.

Yani foreach () çağrısı yankı ama bir değişkende saklamak, sonra şablonda {kullanıcılar} ile bu değişken yerine olmazdı.