PHP Template Engine - PullRequest
       3

PHP Template Engine

0 голосов
/ 28 декабря 2010

Я искал в Интернете учебник по созданию движка шаблонов.Я знаю, что существует множество движков, таких как smarty, twig и pattemplate, которые могут делать именно то, что я хочу, но я ищу, как их создать.Я начал с шаблонизатора, который добавил строки в массив, а затем отобразил массив.С тех пор я построил один, используя eval() (см. Ниже).

<// Define links & folders
define("ROOT_HTTP", "http://" . $_SERVER['HTTP_HOST'] . "/preprocessor");
define("TEMPLATE", "/template");

// Get the template file
$template = file_get_contents("template/template.php");

// Replace
$template = str_replace("<x Title x>", displayTitle(), $template);
$template = str_replace("<x Menu x>", displayMenu(), $template);
$template = str_replace("<x Content x>", displayContent(), $template);

$result = @eval("?>" . $template . "<?");

function displayMenu(){
    return "Link1<br />" . 
     "Link2<br />" . 
     "Link3<br />";
}

function displayTitle(){
     return "Site Title <?php echo date(\"m-d-y\", time()); ?>";
}

function displayContent(){
     return file_get_contents("content.php");
}

Это работает довольно хорошо, но это не то, чего я хочу достичь.Я хотел бы создать что-то похожее на шаблон Joomla с тегами типа <jdoc:include type="component" />.Я также хотел бы, чтобы он мог обрабатывать встроенные ошибки, что означает, что он будет отображать номер строки ошибки или когда я вызываю echo "text", он отображает текст в правильной позиции внутри шаблона.

Как мне создать что-то подобное?

Ответы [ 3 ]

1 голос
/ 29 декабря 2010

http://www.phptal.org/ звучит очень похоже и имеет хорошую организацию кода. если расширение упомянутой системы не удовлетворяет потребностям, это будет по крайней мере хорошим учебником

0 голосов
/ 24 ноября 2013

Я не могу согласиться с точкой зрения NikiC. XML, хотя и является старым синтаксисом, очень мощен и обладает множеством преимуществ, одним из которых является его сходство с правильно написанным HTML.

Нет ничего ограничивающего в использовании синтаксиса шаблонов на основе XML.

Кроме того, хотя Twig действительно отличный и известный проект, ему все еще не хватает действительно хорошей парадигмы разделения. Все еще слишком опасно и слишком легко совершать ошибки из шаблона и наносить ущерб приложению в целом.

Наконец, лучший шаблонный движок - так же, как и лучший MVC-фреймворк - это тот, который вам действительно удобен. Я рекомендую взглянуть на FigDice] 1 , который был вдохновлен PHPTal, но продвигается дальше на несколько шагов благодаря эксклюзивному подходу, предоставляя веб-дизайнеру (интегратору, html-ist и т. Д.) центральная позиция в проекте - гораздо более гибкая, чем в стиле Twig.

Я был бы рад прочитать некоторые отзывы. Спасибо

0 голосов
/ 29 декабря 2010

Прежде всего: немедленно забудьте об использовании TE с XML-подобными тегами. На самом деле, на первый взгляд, это может выглядеть красиво, но в конечном итоге приводит к слишком большой нагрузке и действительно ограничивает.

Во-вторых, я настоятельно рекомендую вам использовать Twig. Он чистый, быстрый, расширяемый и предлагает все необходимые функции.

И, наконец: я написал небольшой урок, как написать простой, но мощный TE в другом вопросе Stackoverflow . Это действительно просто, но для небольших проектов может быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...