Ben daha önce geliştirilen ediyorum kod "bit" refactor çalışıyorum. Temelde, projenin etkin bir XSLT nasıl kullanılacağını bilmeden benim cevap oldu, bu yüzden ben PHP bir XML dönüşüm sistemi geliştirdi. Program, bir XML dosyasının etiketler aracılığıyla okur ve HTML dönüştürmek için bu satırlar boyunca bir şey yapar:
private function getTemplate(...) {
switch ($nodeName) {
case "a" :
// code here to generate a link tag
break;
case "box" :
// code here to generate the divs and whatnot to create a box
break;
case "ref" :
// look up an external reference file and include a bibliography
break;
default :
// do the default thing
}
}
Hepsi benim anahtara 26 şube ile sona erdi dışında, büyük çalışıyordu ve o zamanlar blok kodunun 1000 yılı hatları oldu geçiş. Söylemeye gerek yok, bu bakım biraz daha zorlaştırdı.
Ben şimdi ne yaptık üzerinden kendi dosyası (adında "a.php", "box.php", "ref.php" ...) ve include
her bir dalın kod çekin için Bu dosya her zaman:
if (file_exists("templates/$nodeName.php")) {
include "templates/$nodeName.php";
} else {
// do the default thing
}
Yine, bu işleri, ama kıyaslama% 50 oranında işlem kez yavaşladı olduğunu göstermektedir. Ben orada 4000'e kadar şimdi nerede include
s şimdi yapılıyor çünkü bu olduğunu varsayarak yaşıyorum.
Ne düşündüğünü bir işlev içine her şablon için kod koymak oldu, ve işlevi daha sonra ilan dosyasını içerir ve daha sonra işlevi çalıştırmak değil ise - ki tek sorun mevcut kod ile yazılmış olmasıdır $this
, vb kullanan orijinal fonksiyon kapsamı,
, Burada benim için herhangi bir tavsiye var mı: - Bu kod (o anında bitmedi bu sadece depolanan statik HTML dosyalarının içine XML işler gibi) gerçek zamanlı olarak çalıştırmak olduğu göz önüne alındığında?