![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
Доброе время суток!
Наткнулся в нете на шаблонизаторы, по названию думаю что это скрипт который подключает шаблоны или что то вроде того. Читал статьи, но так до конца и не получил ответа, помогите разобраться. Что такое шаблонизатор?только если можно по русски=) Что требуется знать для написания своего шаблонизатора? Где использовать шаблонизатор? ну думаю по ходу обсуждения темы, возникнут последующие вопросы=) Всем заранее спасибо, не сочтите за боян! |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
-------------------- Amazing |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
У вас есть данные есть представление этих данных выводимое на экран(HTML) шаблонизатор выполняет роль некоего посредника который получает данные и засовывает их в нужное место в шаблоне. Шаблон в большинстве случаев делается в виде файла HTML с некими конструкциями которые понятны шаблонизатору и говорят ему какие данные и куда вставлять. Делается он для того чтобы максимально разделить визуальное представление и логику работы. Но главная причина это разделение труда, а именно программиста и верстальщика.
|
|||
|
||||
| Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
krundetz
так с принципом и целью я разобрался =) а можно наглядный небольшой пример, с подробными комментариями? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
А разве в тех шаблонизаторах, на которые ты наткнулся в интернете, нет примеров?
|
|||
|
||||
| Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
Feldmarschall
были примеры, но не всегда люди которые пишут статьи, пишут доступным языком, а когда просишь кого то объяснить, человек уже понимает нужно как можно доступнее объяснить=) если Вы объясните буду весьма признателен! |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
То есть люди, которые специально писали статью несколько дней, не смогли объяснить, а я за 5 минут тебе все объясню?
Мне кажется это маловероятным. Более вероятным объяснением мне кажется, что тебе просто лень читать статьи и документацию, а хочется, чтобы все разжевали персонально. |
|||
|
||||
| Цербер |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 333 Регистрация: 21.11.2007 Репутация: нет Всего: 1 |
Feldmarschall
Зря Вы так Вот нашёл достойную статейку Впринципе можно закрывать тему. Всем спасибо за внимание к данной теме! |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Нет, не зря. Ты же сам и согласился, что надо найти статью и прочитать. А не просить, чтобы её тебе по-быстрому написали на форуме.
Ты прав - я действительно могу объяснить. Но только не то, про что ты спрашивал. И почему ты спрашивал неправильно. Сначала о втором. Важная вещь, которую надо понять: на форуме тебе отвечают не бесплотные ангелы, у которых нет других забот и никакой работы. И не материальные сотрудники техподдержки, работа которых заключается в том, чтобы отвечать на твои вопросы. На форум заходят отвлечься от основной работы. Работы, которая, как ты можешь догадаться, и состоит в написании "примеров", и часто - с комментариями. Этих людей можно попросить о помощи. Но для воспитанного человека существует предел таких просьб. Остановить машину и попросить подвезти бесплатно, если по пути - вполне нормально. Попросить довезти даже если не по пути, но дозарезу надо - тоже можно. Но остановить мотор и заявить "командир, устрой-ка мне экскурсию на пару часиков по городу! С подробными комментариями" - это уже, согласись - перебор. Поэтому надо быть скромнее. И задавать вопрос, на который можно получить ответ. Небольшой ответ, а не кусок бесплатной работы, да еще и сопровожденный лекцией. Теперь по поводу твоих вопросов. Я тут подумал, и понял, что в них неправильно. Ты задаешь вопрос, как написать шаблонизатор. А шаблонизатор писать тебе ненужно и нельзя. Тебе не нужен пример шаблонизатора с комментариями. Тебе нужен пример шаблона с комментариями. А это есть в документации к любому шаблонизатору. Абсолютно. А сначала надо понять, что это такое, и зачем вообще нужно. Это, кстати, сложный вопрос. почти никто не может на него ответить. Все ответы сводятся к повторению одного и того же - "шаблонизатор нужен потому, что нужен шаблонизатор". "потому, что надо отделить одно от другого". А зачем отделять - никто не знает. Хотя нет, вру. Отвечают, что "чтобы дизайнер мог править внешний вид сайта, не залезая в код". Это самое смешное объяснение, которое только можно придумать. Поэтому надо попытаться понять, зачем нужен шаблонизатор. На самом деле, он не слишком нужен. Не всегда. Этим словом часто подменяют другое понятие, гораздо более важное: разделение получения данных и их вывода в браузер. Вот это - действительно важно и обязано быть в любом проекте. сначала получаем все нужные данные, и только потом начинаем выводить хоть строчку. Это должно быть железным правилом. по одной простой причине. Если при получении данных произошла ошибка, толь пользователь должен получить не чистый лист с невразумительной надписью "Error bla-bla-bla", а красиво оформленную страницу с извинениями. То есть, скрипт должен быть разделен на две части. Первая - получает данные, а вторая - выдает. Для удобства, вторую часть можно вынести в отдельный файл. Для удобства, вывод можно делать не как обычно - echo "<tr><td>$name</td></tr>"; а придумать какой-то специальный формат для этой второй части. плюс - программу, которая понимает этот формат. И это у нас получится шаблонизатор. Разных шаблонизаторов существует очень много. Но если к ним присмотреться, то станет ясно, что различия не так уж и велики, я недавно приводил пример И выбирать имеет смысл только исходя из личных вкусов. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Различия, действительно, небольшие.
К примеру, XSLT отличается тем, что сделан явно не для людей. Более корявого языка я не встречал. Но зато это - стандарт. Научившись верстать в XSLT, можно смело нести заявление на работу в Яндекс - они всегда ищут. Блочный шаблонизатор отличается тем, что состоит из двух частей - собственно шаблона, и кода-обработчика. На первый взгляд, это шаблонизатор с самым небольшим количеством управляющих конструкций. Но не стоит строить иллюзий - чтобы изменить внешний вид сайта, править придется ОБЕ части шаблона - и шаблонную, и программную. По сути, это тип шаблона, над которым программист и верстальщик должны работать обязательно вместе, в отличие от других шаблонов. ПХП хорош тем, что очень быстрый (но это не эксклюзивное его качество, теоретически, таким же быстрым может быть любой) и простой - не надо учить новый язык. Не нужна отдельная программа для парсинга. Однако он опасен тем, что в шаблонах должна быть строгая дисциплина. Иначе можно будет потерять границу междй программой и шаблоном. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Вот еще в тему. Наткнулся на интересные рассуждения о шаблонизаторах
http://raa.livejournal.com/149308.html |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Лично я ими не пользуюсь точнее у меня идет разделение на представление и логику только вставка данных идет не через шаблонизатор а через обычные инструкции PHP в HTML коде, а все почему а потому что нет у нас верстальщика, но если он появится то встрою шаблонизатор при этом код изменится очень незначительно
Это сообщение отредактировал(а) krundetz - 6.7.2008, 02:18 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |