Эффективность использования функции для вывода тегов HTML в PHP - PullRequest
1 голос
/ 28 января 2010

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

echo htmlfunction('a',array('href'=>'http://google.com'),'google');

для генерации:

<a href="http://google.com">google</a>

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

означает ли использование такого вида вывода значительную потерю ловкости в производительности?

спасибо.

Ответы [ 3 ]

3 голосов
/ 28 января 2010

Нет, но вы бы заново изобрели колесо и неправильно.

Вместо записи echo title("bar"); в эхо <title>bar</title>, используйте шаблонизатор для вывода ваших динамических данных в статическом HTML-шаблоне.это выглядит как <title>$title</title>, где ваш код имеет $template->assign('title','bar');.

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

Посмотрите, например, на Smarty

2 голосов
/ 28 января 2010

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

Если вы хотите абстрагировать представление от логики, могу я порекомендовать шаблонизатор, такой как Smarty

1 голос
/ 28 января 2010

Нет, это не приведет к серьезной потере ловкости - вряд ли это будет заметно. Многие системы управления контентом PHP (такие как Drupal и Joomla) делают то же самое для всех своих ссылок.

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