[PHP] Библиотека для формирования html кода.

DavyJohnes
На сайте с 05.01.2011
Offline
84
1184

Добрый день, уважаемые программисты!

В процессе рефакторинга собственного кода подумал о такой штуке: можно ведь создать класс(ы) который будет инкапсулировать в себе HTML документ. Объект класса будет создаваться в самом начале работы скрипта, в процессе работы можно предоставить удобный доступ до всех элементов документа, изменять их или добавлять, в конце работы скрипта можно вызвать метод который просто будет выводить все содержимое в виде HTML.

Я искренне надеюсь что моя идея ясна.

Обдумывая схему работы этого класса я подумал что логично будет взять за основу одно из встроенных в php средств для работы с XML. Вроде бы самая интересная штука - SimpleXML, однако изучив класс SimpleXML я заметил что в нем нет метода который выводит HTML, но имеется который выводит XML. Подумал о том что бы использовать DOMDocument однако с ним работать не так просто как с SimpleXML и опять же в нем нету такой полезной штуки как xPath.

Как в данном случае поступаете Вы? Пишите сами HTML с php вставками или же пользуетесь изложенным выше принципом? Если да то сами писали или использовали какое-то готовое решение?

https://handy-tools.io (https://handy-tools.io) - Набор полезных утилит для всех!
siv1987
На сайте с 02.04.2009
Offline
427
#1
DavyJohnes:
в нем нету такой полезной штуки как xPath

http://www.php.net/manual/ru/class.domxpath.php

php.developer
На сайте с 22.11.2010
Offline
94
#2

Интересный доступ к markup реализован в phpQuery. В JQuery стиле.

N
На сайте с 06.05.2007
Offline
419
#3
DavyJohnes:
Добрый день, уважаемые программисты!
Как в данном случае поступаете Вы? Пишите сами HTML с php вставками или же пользуетесь изложенным выше принципом? Если да то сами писали или использовали какое-то готовое решение?

Уважаемые программисты нанимают Верстальщика, миссия которого, вообще говоря, не предполагает обязательного знания слов "метод", "класс", да и программирования на императивных языках как такового.

А неуважаемые поделятся своим бардаком в голове, который они развели работая в одиночку :)

Кнопка вызова админа ()
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#4
DavyJohnes:
Добрый день, уважаемые программисты!
В процессе рефакторинга собственного кода подумал о такой штуке: можно ведь создать класс(ы) который будет инкапсулировать в себе HTML документ. Объект класса будет создаваться в самом начале работы скрипта, в процессе работы можно предоставить удобный доступ до всех элементов документа, изменять их или добавлять, в конце работы скрипта можно вызвать метод который просто будет выводить все содержимое в виде HTML.
Я искренне надеюсь что моя идея ясна.
Обдумывая схему работы этого класса я подумал что логично будет взять за основу одно из встроенных в php средств для работы с XML. Вроде бы самая интересная штука - SimpleXML, однако изучив класс SimpleXML я заметил что в нем нет метода который выводит HTML, но имеется который выводит XML. Подумал о том что бы использовать DOMDocument однако с ним работать не так просто как с SimpleXML и опять же в нем нету такой полезной штуки как xPath.

Как в данном случае поступаете Вы? Пишите сами HTML с php вставками или же пользуетесь изложенным выше принципом? Если да то сами писали или использовали какое-то готовое решение?

Откройте для себя HTML шаблоны.

Это такая классная штука, которая позволяет отделить программирование от верстки.

Верстальщик делает html файл вида:

<!DOCTYPE HTML>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{title}</title>
</head>
<body>
{content}
</body>
</html>

Вы с помощью шаблонизатора заменяете дескрипторы {title}, {content} и т.д. на фрагменты текста или html кода и формируете страницы вашего сайта.

Бонус такого подхода - при необходимости шаблон можно быстро и безболезненно модифицировать.

А городушку из php классов, с нуля генеринующих страницу, проще стереть нафиг.

IL
На сайте с 20.04.2007
Offline
435
#5

DavyJohnes, посмотрите XSLT 😂

И xPath, и вложенность/очерёдность различных шаблонов/правил преобразований.. обращение "к любому узлу в любом месте"

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Анабой Янсур
На сайте с 12.04.2011
Offline
114
#6

Есть хорошая библиотека PHP Simple HTML DOM Parser - http://simplehtmldom.sourceforge.net

Ayavryk
На сайте с 11.10.2003
Offline
209
#7
DavyJohnes:
SimpleXML я заметил что в нем нет метода который выводит HTML

Если смотрите в сторону XML, то для шаблонизации лучше всего подойдет XSLT. Можно собирать-разбирать XML как заблагорассудится и в несколько проходов - на уровне ваших компонентов, на уровне сборки, на финальном преобразовании.

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий