Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблонизаторы, суть и цель. Для чего и как сделать? 
V
    Опции темы
Цербер
Дата 4.7.2008, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Доброе время суток!
Наткнулся в нете на шаблонизаторы, по названию думаю что это скрипт который подключает шаблоны или что то вроде того.
Читал статьи, но так до конца и не получил ответа, помогите разобраться.
Что такое шаблонизатор?только если можно по русски=)
Что требуется знать для написания своего шаблонизатора?
Где использовать шаблонизатор?
ну думаю по ходу обсуждения темы, возникнут последующие вопросы=)
Всем заранее спасибо, не сочтите за боян!
PM MAIL ICQ   Вверх
MoLeX
Дата 4.7.2008, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140





--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
krundetz
Дата 4.7.2008, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



У вас есть данные есть представление этих данных выводимое на экран(HTML) шаблонизатор выполняет роль некоего посредника который получает данные и засовывает их в нужное место в шаблоне. Шаблон в большинстве случаев делается в виде файла HTML с некими конструкциями которые понятны шаблонизатору и говорят ему какие данные и куда вставлять. Делается он для того чтобы максимально разделить визуальное представление и логику работы. Но главная причина это разделение труда, а именно программиста и верстальщика.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Цербер
Дата 4.7.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



krundetz
так с принципом и целью я разобрался =)
а можно наглядный небольшой пример, с подробными комментариями?
PM MAIL ICQ   Вверх
Feldmarschall
Дата 4.7.2008, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



А разве в тех шаблонизаторах, на которые ты наткнулся в интернете, нет примеров?

PM   Вверх
Цербер
Дата 4.7.2008, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Feldmarschall
были примеры, но не всегда люди которые пишут статьи, пишут доступным языком, а когда просишь кого то объяснить, человек уже понимает нужно как можно доступнее объяснить=)
если Вы объясните буду весьма признателен!
PM MAIL ICQ   Вверх
Feldmarschall
Дата 4.7.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



То есть люди, которые специально писали статью несколько дней, не смогли объяснить, а я за 5 минут тебе все объясню?
Мне кажется это маловероятным.
Более вероятным объяснением мне кажется, что тебе просто лень читать статьи и документацию, а хочется, чтобы все разжевали персонально.
PM   Вверх
Цербер
Дата 4.7.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 333
Регистрация: 21.11.2007

Репутация: нет
Всего: 1



Feldmarschall 
Зря Вы так
Вот нашёл достойную статейку
Впринципе можно закрывать тему.
Всем спасибо за внимание к данной теме! 
PM MAIL ICQ   Вверх
Feldmarschall
Дата 4.7.2008, 11:14 (ссылка) |    (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Нет, не зря. Ты же сам и согласился, что надо найти статью и прочитать. А не просить, чтобы её тебе по-быстрому написали на форуме.

Ты прав - я действительно могу объяснить. Но только не то, про что ты спрашивал. И почему ты спрашивал неправильно.
Сначала о втором.
Важная вещь, которую надо понять: на форуме тебе отвечают не бесплотные ангелы, у которых нет других забот и никакой работы. И не материальные сотрудники техподдержки, работа которых заключается в том, чтобы отвечать на твои вопросы. На форум заходят отвлечься от основной работы. Работы, которая, как ты можешь догадаться, и состоит в написании "примеров", и часто - с комментариями. Этих людей можно попросить о помощи. Но для воспитанного человека существует предел таких просьб. 
Остановить машину и попросить подвезти бесплатно, если по пути - вполне нормально.
Попросить довезти даже если не по пути, но дозарезу надо - тоже можно.
Но остановить мотор и заявить "командир, устрой-ка мне экскурсию на пару часиков по городу! С подробными комментариями" - это уже, согласись - перебор.

Поэтому надо быть скромнее. И задавать вопрос, на который можно получить ответ. Небольшой ответ, а не кусок бесплатной работы, да еще и сопровожденный лекцией.

Теперь по поводу твоих вопросов.
Я тут подумал, и понял, что в них неправильно.
Ты задаешь вопрос, как написать шаблонизатор. А шаблонизатор писать тебе ненужно и нельзя.
Тебе не нужен пример шаблонизатора с комментариями. Тебе нужен пример шаблона с комментариями. А это есть в документации к любому шаблонизатору. Абсолютно. 
А сначала надо понять, что это такое, и зачем вообще нужно. 
Это, кстати, сложный вопрос. почти никто не может на него ответить. Все ответы сводятся к повторению одного и того же - "шаблонизатор нужен потому, что нужен шаблонизатор". "потому, что надо отделить одно от другого". А зачем отделять - никто не знает. Хотя нет, вру. Отвечают, что "чтобы дизайнер мог править внешний вид сайта, не залезая в код". Это самое смешное объяснение, которое только можно придумать.

Поэтому надо попытаться понять, зачем нужен шаблонизатор.
На самом деле, он не слишком нужен. Не всегда. Этим словом часто подменяют другое понятие, гораздо более важное: разделение получения данных и их вывода в браузер. Вот это - действительно важно и обязано быть в любом проекте. сначала получаем все нужные данные, и только потом начинаем выводить хоть строчку. Это должно быть железным правилом. по одной простой причине. Если при получении данных произошла ошибка, толь пользователь должен получить не чистый лист с невразумительной надписью "Error bla-bla-bla", а красиво оформленную страницу с извинениями. 

То есть, скрипт должен быть разделен на две части. Первая - получает данные, а вторая - выдает.
Для удобства, вторую часть можно вынести в отдельный файл. 
Для удобства, вывод можно делать не как обычно - echo "<tr><td>$name</td></tr>"; а придумать какой-то специальный формат для этой второй части. плюс - программу, которая понимает этот формат. И это у нас получится шаблонизатор. 
Разных шаблонизаторов существует очень много. Но если к ним присмотреться, то станет ясно, что различия не так уж и велики, я недавно приводил пример
И выбирать имеет смысл только исходя из личных вкусов.
PM   Вверх
Feldmarschall
Дата 4.7.2008, 11:59 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Различия, действительно, небольшие.
К примеру, XSLT отличается тем, что сделан явно не для людей. Более корявого языка я не встречал. Но зато это - стандарт. Научившись верстать в XSLT, можно смело нести заявление на работу в Яндекс - они всегда ищут. 

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

ПХП хорош тем, что очень быстрый (но это не эксклюзивное его качество, теоретически, таким же быстрым может быть любой) и простой - не надо учить новый язык. Не нужна отдельная программа для парсинга. Однако он опасен тем, что в шаблонах должна быть строгая дисциплина. Иначе можно будет потерять границу междй программой и шаблоном. 
PM   Вверх
Feldmarschall
Дата 5.7.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Вот еще в тему. Наткнулся  на интересные рассуждения о шаблонизаторах
http://raa.livejournal.com/149308.html
PM   Вверх
krundetz
Дата 6.7.2008, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Лично я ими не пользуюсь точнее у меня идет разделение на представление и логику только вставка данных идет не через шаблонизатор а через обычные инструкции PHP в HTML коде, а все почему а потому что нет у нас верстальщика, но если он появится то встрою шаблонизатор при этом код изменится очень незначительно

Это сообщение отредактировал(а) krundetz - 6.7.2008, 02:18


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.