Существует ли система шаблонов только для HTML для php? - PullRequest
6 голосов
/ 14 июля 2010

Я начал кодировать в clojure, и я действительно впечатлен Enlive . Одна вещь, которая мне действительно нравится в этом, - то, что Enlive использует шаблоны только для HTML. Таким образом, шаблон - это файл с html, заканчивающийся на .html, просто так. Он разбирается в dom-дереве, а затем этим dom-деревом манипулирует clojure / invive, объединяет, делает динамическим и т. Д. Нет синтаксиса в файлах шаблонов html, прекрасно чистое разделение.

Другой пример аналогичной системы, выполненной с помощью javascript, - PURE .

Есть ли что-нибудь подобное в php? Или вообще какие-либо способы создания шаблонов только для html?

Ответы [ 5 ]

4 голосов
/ 19 июля 2010

Очарован, чтобы услышать об Enlive.Я размышлял над этой концепцией в течение нескольких лет и вместе взломал что-то в PHP , которое разделяет некоторые принципы: шаблоны являются чистым HTML, и вы «заполняете» их, обращаясь к контенту к определенному узлу вдокумент с использованием CSS или XPath.

$t = new Template('yourfile.html');
$t->fill('#nav',$someMarkup);
$t->fill('#header',$otherMarkup);

Я также экспериментировал со сборкой некоторых положений для разделения контента на «таблицу стилей», что-то вроде ... ну, «таблица стилей» - неправильное слово.Я называю их листами адресации контента (проект называется CAST, для шаблонного стиля контента).CAS выглядит так, как вы могли ожидать:

.col #foot {
    content: 'foot';
}

#content {
    content: file_get_contents('pangolin.txt');
}

Предполагается, что значения содержимого являются выражениями PHP.Есть некоторые условия для настройки PHP, которые также применяются к селекторам.

Запустите скрипт cssfill.php, который находится в tarball (лучший вызов, вероятно, ./cssfill.php pangolin.cas pangolin.html, вам, возможно, придется изменить путь к вашему интерпретатору php внутри cssfill.php), взгляните навывод, сравните с входными файлами.

Если этот пост вызывает какой-то энтузиазм по поводу вашей идеи, не стесняйтесь, дайте мне знать.Мне было интересно, было ли это сумасшедшей идеей или у нее есть место, если оно есть, я был бы рад превратить ее в вдумчиво выпущенный проект с открытым исходным кодом, в отличие от тарбола, случайно брошенного в Интернет.

2 голосов
/ 19 июля 2010

Вы можете проверить phptal.org . Это механизм шаблонов для PHP, который использует HTML-теги. Но это не так быстро.

Вы также можете проверить другие проекты, такие как twig-project.org , который работает быстрее.

1 голос
/ 29 ноября 2013

Интересные старты.Но я впечатлен, почему у нас не может быть другого шаблона с текстом образца, чтобы изменить представление и другое состояние элементов - и извлечь код для создания существующих систем шаблонов или просто заполнить его содержимым.Найти рабочий процесс кажется таким сложным - не нравится смешивать html с php / js или писать абстрактные системы шаблонов.Нужно много мозгов - много общения без легких визуализаций.

1 голос
/ 20 июля 2010

Оформить заказ PHPTAL . PHPTAL - это библиотека шаблонов XML / XHTML для PHP5, которая предоставляет скомпилированные шаблоны и детальное кэширование. Шаблоны определены в чистой разметке XML / HTML.

<div class="item" tal:repeat="item itemsArray">
    <span tal:condition="item/hasDate" tal:replace="item/getDate"/>
    <a href="${item/getUrl}" tal:content="item/getTitle"/>
  <p tal:content="value/getContent"/>
</div>
0 голосов
/ 19 сентября 2010

Я думаю, Псттт! движок шаблонов для php - это именно то, что вы ищете, он сохраняет ваш HTML-шаблон без изменений, позволяя вам лучше использовать htmls.

полный исходный код здесь http://github.com/givanz/psttt

...