PHP: DOM ile bina (X) HTML çıktı - artılarını ve eksilerini?

2 Cevap php

Ben sadece yeni bir site ile başladı ve ben tam bir site oluşturmak için DOMImplementation kullanmaya karar verdi.

Bu konuda ne düşünüyorsunuz, yeterince hızlı? Ben temel baskı yöntemine göre biraz daha yavaş olmasını bekliyoruz. Son çıkışı söz değil, daha hatasız XHTML bina ne zaman daha fazla esneklik sağlar çünkü DOM bir tercih. Neyse, en azından bazı hız karSIlaStIrmasInI istiyorum.

(Yani minimum seviyede tutmak HTML) temiz PHP kodu tutmak için bana herhangi bir (belki de tamamen açık) fikir önerebilir misiniz?

2 Cevap

O yeterince hızlı mı? Bu tamamen tabii ki, sitenizde bağlıdır. Önemsiz veya prototip sitesi için iyi olurdu, ama kesinlikle karmaşık, yüksek trafik sitede DOM-çiftleşmiş çözüm dağıtmak istemem.

HTML-uyumlu-XHTML bu şekilde oluşturmak mümkün olmayacaktır; Eğer saveXML hangi HTML4 oluşturur saf, non-IE-uyumlu XHTML, ve saveHTML, üretir arasında seçim yapmak zorunda olacak. style ve script gibi CDATA elementler de bazı dikkat gerekebilir.

DOM aramalar yardımcı işlevleri veya çerçevelerin parası olmadan JavaScript düğümleri oluşturmak gibi, aynı zamanda içerik oluşturma için çok ayrıntılı vardır. Ben çıkan kodu PHP çiftleşmiş karşılaştırıldığında, bu okunabilir olacak emin değilim.

Sen, tutarlı bir biçimlendirme ağacını kullanarak, XML başlangıç ​​ve bitiş etiketleri sanki <?php if (condition) { ?> ... <?php } ?> gibi PHP yapıları tedavi ederek basit bir şekilde PHP çiftleşmiş 'temiz' yapabilir ve her zaman iç içe ve 'iyi biçimlendirilmiş' tarzında sürekli onları girintilenmiş. Örneğin bkz. this question bazı tartışmalar için.

Sen CheckBox, textArea, ve benzeri gibi yöntemleri vardır bir Widget sınıf olabilir. Sizin View / Controller temel sınıf bir işlev addContent ($ aString) tanımlar. Eğer bir form oluştururken, gibi şeyler söylüyorlar

$builder = new Widget();
$this->addContent($builder->textArea("Description", $description, 5, 100);
$this->addContent($builder->radioGroup("Platform", array("FreeBSD", "Linux", "Windows"), $platform, 100);

nerede

public function textArea($name, $value, $numLines, $width) {...}
public function radioGroup($title, $nameArray, $selectedValue, $width0 {...}
// etc.

Sizin formları daha sonra HTML hakkında hiçbir şey bilmiyorum: Onlar UI bileşenleri ile kesinlikle çalışır. Widget sınıfının alt HTML, ya da her türlü üretebilir.