Основная мотивация в этом заключается в том, что я очень устал или использую php-теги для написания php-представлений, которые были очень уродливыми.Рассмотрим такой подход:
<?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.Я думал о написании ОО-подхода к написанию DOM на основе jQuery с использованием компонента Zend Framework Zend_Dom_Query , с тем же подходом phpQuery: тот же интерфейс, что и у jQuery.
После некоторого поиска в сетиВ PHP HTML Generators я не могу найти много того, что было сделано в этой части, и мой вопрос: использует 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, которая делает именно это, я был бы рад, если бы кто-то мог указать мне на это.