RoR şablon Partials / koleksiyonları için PHP eşdeğer

2 Cevap php

Ben yazıyorum bir PHP şablon sınıfı için RoR tarzı Partials / koleksiyonları uygulamak için en verimli şekilde anlamaya çalışıyorum. Raylar aşina olmayanlar için, ben ayrı bir dosyada bulunan bir şablon parçası (mesela bir tablo satır veya liste öğesi) tekrarlatacak istiyorum. Ben bunu yapmak istiyorum without resorting to eval or placing an include within the loop .

Ben bir similar post o tek önemsiz partials, ama bir koleksiyon uygulama partials kapsar şey giderir gördüm. Ben çok uzun başım ağrıyor bu düşünüyordum ve ben bariz bir çözüm bakan korkuyorum. Burada birileri yine, eval gerektiren veya döngü içinde içermez, zarif bir çözüm önerebilir umuyorum. TIA.

2 Cevap

Bunu yapabilirsin süreci ile çiftleşmiş motoru kendi içerir gerekir ve daha sonra bir kerede her şeyi eval. Çok c önişlemci eserleri gibi.

Adım 1 (kaynak şablon):

$template = '
   foreach($bigarray as $record)
       #include "template_for_record.php"
'

Adım 2 (önişlemesini sonra):

$template = '
   foreach($bigarray as $record)
       // include statement replaced with file contents
       echo $record['name'] etc
'

Adım 3 (son render)

  // eval() only once
  eval($template);

Bu şekilde her döngü adımında subtemplate dahil / evaling yükünü önleyebilirsiniz.

Sen çözüme başvurmadan olmadan bir şey yapmak nasıl soruyorsun.

Kullandığınız herhangi bir şablon sistemi 1000 katmanlar derin soyutlama gömülü olsa bile, bir eval veya bir döngü içinde dahil kullanmak için gidiyor.

O da bitti sadece nasıl.