ШаблоныНет, наверное, в веб-программировании темы столь же очевидной, сколь и непонятной, как шаблоны. Каждый, рано или поздно, приходит к выводу о необходимости испрользования шаблонов. Но приходит, почему-то, через какие-то дичайшие заблуждения и фантазии. Самое простое и очевидное заблуждение состоит в том, что новички называют шаблоном вынесенный в отдельный файл "дизайн" - обший html для всех страниц сайта. И на этом успокаиваются. Динамическую информацию, ничтоже сумняшеся, выводя старым добрым echo :-) На самом же деле, шаблонизатор в основном занимается выводом изменяющегося содержимого страниц сайта. А вывод "дизайна" - задача второстепенная. Фантазий главных две: 1. Шаблоны нужны "дизайнеру", чтобы он мог их править, не разбираясь в PHP. 2. Следовательно, шаблоны служат для отделения PHP от HTML. Давайте попробуем задуматься над первым утверждением. Кто такой дизайнер? Это человек, который работает в фотошопе. HTML он чаще всего не знает вообще. А над шаблоном работает либо специальный верстальщик или - чаще всего... сам программист! Смешно, правда? Теперь следствие, про отделение PHP от HTML. Отлично. Перед нами стоит святая цель отделить. Поэтому мы придумываем Смарти и пишем: {foreach key=cid item=con from=$contacts}Ещё смешнее. "Дизайнер", ради которого все затевалось, падает в обморок от счастья. Получается, наши причины, по которым мы решили пользоваться шаблонами, гроша выеденного не стоят. И что, не нужны, выходит, шабоны вообще? Нужны. Но сначала надо ответить себе на вопрос - зачем. Для чего нужны шаблоны. И проверить ответ практикой. Я много раз задавал людям этот вопрос. Но почти никто не может на него ответить. Зачем ему нужны шаблоны. Получается, люди делают что-то, не зная зачем. Это - самое смешное. За время своей деятельности в качестве веб-программиста я сформулировал для себя три причины, по которым нужны шаблоны лично мне. По сути, их две. А сводятся, в конечном счете, к одной: Один код - несколько представлений. Часто бывает так, что вместо одной информации надо показать другую. Например, код получения текста новости из базы получает вместо него сообщение об ошибке. Вместо страницы с текстом новости нужно показать совсем другую - с извинениями и просбой зайти позже. С помощью шаблонов это делается элементарно. Часто одну и ту же информацию надо показывать в нескольких видах. К примеру - обычная страница и страница для печати. Информация та же самая, код её получения один и тот же, а код вывода - разный. Столкнувшись с такой ситуацией, очень быстро разделишь свой код на две части, одна из которых отвечает за вывод, а вторая - не отвечает. В чем-то похожая ситуация: допустим, наш скрипт стоит на двух сайтах. И у нас дома. И вот дома мы нашли крупную багу. Заделали её. Теперь надо обновить код на сайтах. И вот он - момент истины: если шаблоны были использованы правильно, то мы просто заливаем код на оба сайта, и все продолжает работать, как ни в чем не бывало! Такая ситуация, как я считаю - идеальная проверка выбранного подхода к шаблонизации. У вас могут быть свои причины использовать шаблоны. Но только с одним условием - эти причины должны быть вызваны реальной, жизненной необходимостью, а не "высшими соображениями" и заботой о каких-то неизвестных вам людях. Другие материалы раздела: Сессии. Подробное описание работы и объяснение механизма. Регулярные выражения. Mail injection. Работа с e-mail средствами PHP. Определение IP адреса Безопасность PHP скриптов |
| Сергей | 26.07.10 21:28 | ||
| как-то странно читать такие рассуждения в 2010 году. По-хорошему шаблоны не нужны - лучше использовать управляемую трансформацию (xsl). Конечно стоит допускать и наличие активных и нативных шаблонов. Все это прекрасно реализуемо в рамках стандарта. И дизайнеру и верстальщику понятно. Главное что бы было понятно менеджеру проекта - что в конце должно получиться. Вот вопрос который меня мучит: а почему все повторяют за Мартином Фаулером что MVC это хорошо? А как же web 2.0? Что хорошо для данных со статической структурой - смерть для данных сос структурой динамической. | |||
|
|||
| Александр | 27.02.10 20:51 | ||
| Вопрос нужности или ненужности шаблонов здесь встал только потому, что в качестве языка используется php (при чем php4). Ведь php по сути является шаблонизвтором, а не полноценным языкрм. В 5-м php (как и в perl, python и т.д.) идеология программирования совершенно другая, принцип MVC используется повсюду, поэтому вопрос использования или неиспользования шаблонов вообще не стоит — шаблоны являются частью программной архитектуры, которая доказала свое превосходство. | |||
| СВЕТЛАНА | 07.01.10 20:38 | ||
| Когда я ввожу свой e-mail мне отвечает что адрес введен неверно.В чем может быть проблема. | |||
| ГПК | 02.10.09 16:47 | ||
| Ваши слова о том, что вместо верстальщика зачастую выступает программист, доказывает то, как выглядят шаблоны популярного блог-кмс движка wordpress - там голый php-код. Почему бы не использовать шаблоны с целью избежания внесения глюков в код сайта, захотев однажды изменить его дизайн? |
|||
|
|||
| Гость | 23.02.09 15:21 | ||
| Главное цель шаблонизации - повторное использование кода, это основная методология, которая применяется для сокращения трудозатрат при разработке сложных систем. Если есть сайт с 200 страницами, то глупо писать под каждую страницу свой html-дизайн, еще сложнее потом делать редизайн (менять все 200 страниц) - на ХТМЛ эта проблема частично могла быть решена использованием фреймов (например два фрейма - header.html и footer.html) На PHP это решаеться так называемым использованием "шаблонов". Две, приведенные в статье, фантазии, на самом деле являются проблемой: Выносить HTML-код из PHP, для удобной работы не только дизайнера, но и программиста. так называемые "высшие соображения" естественно глупо использовать для личной странички, сайта-визитки.. Но обязательно должны учитываться при разработке сложных(крупных) проектов. |
|||
|
|||