Stackoverflow üzerinde bu soruyu okuyordu:
/programming/104516/calling-php-functions-within-heredoc-strings
ve kabul edilen cevap şöyle bir PHP şablonu yaptığını söylüyor:
template.php:
<Html> <Head> <Title> <? = $ Başlık?> </ Title> </ Head> <Body> <? = GetContent ()?> </ Body> </ Html>
index.php:
<? Php $ title = 'Demo Başlığı'; işlev getContent () { dönüş '<p> Merhaba Dünya! </p>'; } ( 'Template.php') içerir; ?>
Bana göre yukarıdakiler, template.php dosyasının diğer komut dosyalarında tanımlanan değişkenlere bağlı olması bakımından iyi yapılandırılmamıştır. Ve bunu yaparken kodu yürütmek için bir include () include('template.php')
kullanıyorsunuz (bir sınıfı veya hemen yürütülmeyen bir işlevi eklemek için include () yöntemini kullanmak yerine) kullanıyorsunuz.
Daha iyi bir yaklaşım, şablonunuzu bir işlev içine sarmak gibi hissediyorum:
template.php:
<? Php işlev şablonu ($ title, $ content) { ob_start (); ?> <Html> <Head> <Title> <? = $ Başlık?> </ Title> </ Head> <Body> <? = $ İçeriği?> </ Body> </ Html> php dönüşü ob_get_clean (); } ?>
index.php:
<? Php Require_once ( 'template.php'); yazdırma şablonu ('Demo Başlığı', '<p> Merhaba Dünya! </p>'); ?>
İkinci yaklaşım daha mı iyi? Bunu yapmanın daha iyi bir yolu var mı?