Лучший способ хранить виджеты, фрагменты XTHML и контейнеры в PHP - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть несколько виджетов и контейнеров XHTML, которые имеют статическое или в основном статическое содержимое.Когда я говорю в основном статический, я имею в виду виджет, который использует одну или несколько переменных, переданных ему из БД или конфигурации.Все они используются на нескольких страницах интерфейса.В настоящее время я сохранил их как функции PHP, которые возвращают строку XHTML, и эти функции хранятся в отдельном файле «функций», который «включен» на каждой странице.Где это применимо, я либо передаю эти значения конфигурации функций, либо выполняю некоторые вызовы БД изнутри.

Есть ли другой лучший способ сохранить их в коде PHP?Или то, что я делаю, довольно стандартно?

(я не использую Smarty или другую систему шаблонов и не хотел бы добавлять еще один уровень абстракции.)

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Это довольно стандартно, большинство, что вы можете сделать, это разделить их на файлы для каждого и затем иметь «включаемые» файлы, которые включают каждый из них.

Таким образом, вам нужно будет загружать только то, что вам нужно для каждого скрипта / страницы.

0 голосов
/ 08 декабря 2011

(Я не использую Smarty или другую систему шаблонов, и я бы не хотел добавлять еще один уровень абстракции.)

Я знаю, что это не то, что вы хотите, но это именно то, чтоя бы сделал.Я не обязательно буду использовать шаблонизатор с его грамматикой wone, но я буду использовать php и создавать отдельные шаблоны фрагментов, содержащие структурную разметку, а затем передавать то, что мне нужно, например:

function get_partial($path, $args = array())
{
   ob_start();
   include($path);
   return ob_get_clean();
}

function include_partial($path, $args = array())
{
   echo get_partial($path, $args);
}

Затем в вашем шаблоне:

<div class="<?php echo $args['classname']?>">
  <h4><?php echo $args['title'] ?></h4>
  <?php echo $args['content'] ?>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...