在這個主要動機是,我很累或使用php標籤來寫非常醜陋的PHP視圖。考慮這樣的方法:面向HTML生成的PHP5.3面向對象建模,一種可能性或性能瓶頸?
<?php
<ul>
<?php echo foreach($products as $product): ?>
<li><?php echo $product->getName()?><li>
</ul>
這是微不足道的MVC的,享有基本的做法,但我厭倦了這一點,所以我用phpQuery代替:
<?php
$ul = pq('<ul />');
foreach($products as $product) {
$ul->append(pq('<li />')
->html($product->getName())
);
}
echo $ul;
這是乾淨多了。不幸的是,phpQuery在開發中似乎並不活躍。問題是,phpQuery是以過程方式編程的,並且很難理解和維護,並且包含一些在大多數DOM操作情況下無用的錯誤。我正在考慮使用Zend Framework的組件Zend_Dom_Query,使用與phpQuery相同的方法,基於jQuery編寫DOM寫作的OO方法:與jQuery相同的接口。
對PHP HTML發電機淨某些搜索後,我似乎無法找到太多,已經做了一部分,我的問題是,使用OO用PHP生成HTML性能瓶頸,因爲所有的靜態HTML會被服務器端生成?
我知道有HAML的方法,但我喜歡DOM操作的想法,以便可以在腳本執行期間的任何時間的任何時候注入html。在服務器端DOM操作導致查看腳本的傳承是這樣的:
//a parent index.phtml
$container = pq('<div />')
->addClass('.container')
->html($this->_("Hello World!"));
$this->setRenderReturn($container);
//a child index.phtml
$container = $this->renderParent(__FILE__); //retrieves the parent just like the conventional parent:: in php scripts
$container->addClass('anotherClass');
$this->setRenderReturn($container);
此外,如果我錯過了一個PHP庫,做到了這一點,我會很高興很感激,如果有人可以點我給它。
我一直在看它,它似乎非常強大,在我有任何使用情況。我不知道,你是否可以輕鬆地使用條件操作元素?下面是一個使用phpQuery的例子:http://pastebin.com/SFT4rMyJ並查看條件,在放置html之前,我可以動態地將一個類添加到未完成的元素。什麼是小枝相當於? - 最好的祝福 – 2011-03-25 16:43:56