Покинул форум
Сообщений всего: 68
Дата рег-ции: Май 2011 Откуда: Уфа
Помог: 0 раз(а)
Здравствуйте, Уважаемые программисты!
И сразу перейду к делу. Что-то увлекся я PHP программированием, решил начать создание своего CMS с шаблонизатора. Прочел парочку статей по этой теме. Кое-где просочилась информация, что чем сложнее шаблонизатор, тем он лучше (конечно, я немного перефразировал предложение!). Основные функции я реализовал: загрузка шаблона(можно из базы данных и из файла), подстановка значений вида {KEY} => $value, кострукторы, деструкторы, вроде все поставил... Или не все? Может можно еще что-то сделать? Или это уже ни к чему? Заранее всем спасибо за внимание!
Покинул форум
Сообщений всего: 285
Дата рег-ции: Май 2010 Откуда: Тверь
Помог: 4 раз(а)
я тож задумывался раньше о написании чего-то такого-эдакого попалось как-то слово "шаблонизсатор", полазил по форумам, посмотрел и понял, что написание своего языка программирования на php вещь, хотя и крутая, но с точки зрения логики, абсолютно бессмысленная, разве что для самообразования этим заниматься... а отделение php от html делается очень просто, за счет вставки в нужных местах предопределенных констант. Зачем изобретать давно изобретенное чудо техники под названьем велсипед
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
одной из задач mvc (а раз уж речь идет о шаблонах, стоит и его упомянуть) является разделение вида(шаблона) от модели(кода). мне лично не понятно как верстальщик не знающий php(так как он ему и не нужен) будет подгонять верстку под ваш код.
Теперь рассмотрим способ "вставки констант". Константа обязательно должна быть предопределена, таким образом если ваш сайт состоит из определенных модулей/компонентов, перед непосредственным выполнением вашего шаблона ВСЕ они должны быть выполнены, чтобы сгенерировать эти константы. Это удобно, если у вас одни и те же модули работают на всех страницах сайта, но если нет? если вам необходимо запускать тот или иной модуль на отдельных страницах, зачем тогда выполнять его код постоянно?
Еще один аспект. Константа генерируемая определенным участком кода в данном случае будет скорее всего являть небольшой(а может и довольно большой) участок будущего html кода страницы. А если верстальщику потребуется немного изменить этот код, и опять же php он не знает?
Шаблонизаторы - это не языки программирования. Это лишь способ разделения одного кода от другого, и не больше.
----- if(time()>1356048000) die();
Ejas Tower
Отправлено: 20 Июля, 2011 - 09:36:58
Гость
Покинул форум
Сообщений всего: 68
Дата рег-ции: Май 2011 Откуда: Уфа
Помог: 0 раз(а)
Я конечно со всем этим согласен, но но недавнего момента я всегда думал, что в константы записывать можно только небольшие строки... Но все-таки, по-моему, наверное совсем простенький шаблонизатор (просто заменяет {PAGE} на значение переменной $page и выводит результат в браузер) лучше, чем заранее предопределенные константы. Разве не так?
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
Ejas Tower
совсем маленький шаблонизатор будет например искать в шаблоне строки начинающиеся на "{" и заканчивающиеся "}", интерпретировать текст между этими символами например {PAGE} и к примеру запускать на исполнение модуль /page.php после чего получив результат выполнения этого модуля заменять им строку {PAGE} (Добавление)
P.S. константа - та же переменная, значение которой определяется только один раз, и (в PHP) существует глобально. И так же как и переменная типа string она может содержать строку любой длины.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.