|
|
|
| Доброе время суток!
Скажите пожалуйста, есть ли способ (например, используя директивы .htaccess) заставить php-парсер по-особому обрабатывать определённые теги или символы? Смысл таков: встретив "особый" тег, интерпретатор обратится к соответствующему модулю и выполнит какую-то команду, выполняя роль шаблонизатора:
<div> Hello, </div> <!-- обычный вывод -->
<getValue>userName</getValue> <!-- динамический вывод -->
|
| |
|
|
|
|
|
|
|
для: bishake
(15.06.2010 в 21:02)
| | Нет, для этого есть обычные шаблонизаторы... | |
|
|
|
|
|
|
|
для: nikita2206
(15.06.2010 в 21:11)
| | Эх, а так хочется избежать парсинга шаблонов... Это же ИМХО одна из самых громоздких операций MVC | |
|
|
|
|
|
|
|
для: bishake
(15.06.2010 в 22:13)
| | Так не вы же парсить будете. И даже парсер писать тоже будете не вы.
Или вас просто затрудняет учить синтаксис шаблонизаторов?
К тому же, PHP - сам себе неплохой шаблонизатор.
Используйте функции. То есть, вместо
<loadModule>SomeModule</loadModule>
|
пишите
<?php loadmodule('SomeModule'); ?>
|
Так ведь проще..вообще непонятно, че за велосипед вы изобретаете. Чем-то смахивает на XSLT, но только введением своих "тэгов". | |
|
|
|
|
|
|
|
для: neadekvat
(15.06.2010 в 22:37)
| | Абсолютно согласен. Почитайте про CodeIgniter, там например многие вместо шаблонизатора используют как-раз сам пхп в файлах вида... (Это я топикстартеру) | |
|
|
|
|
|
|
|
для: nikita2206
(15.06.2010 в 23:50)
| | Спасибо за справку! Уже читаю, и нашёл там свой велосипед:
"Хотя с CodeIgniter и поставляется простой парсер шаблонов, но он совсем не обязателен для использования. Система шаблонов не может сравниться по производительности с самим PHP, и ее синтаксис, как правило, лишь несколько проще, чем обучение основам PHP. " | |
|
|
|
|
|
|
|
для: neadekvat
(15.06.2010 в 22:37)
| | >Или вас просто затрудняет учить синтаксис шаблонизаторов?
Не затрудняет. Просто считаю, что метод парсинга шаблона не совершенен.
>К тому же, PHP - сам себе неплохой шаблонизатор.
Именно! Поэтому я и хочу писать прямо в PHP-файле, но только не тегами <?php ?>, так как это может противоречить модели MVC, а "тегами".
>Чем-то смахивает на XSLT, но только введением своих "тэгов".
А вот за это замечание спасибо! В XSLT теперь появилось желание разобраться и поюзать -) | |
|
|
|
|
|
|
|
для: bishake
(16.06.2010 в 00:35)
| | Именно! Поэтому я и хочу писать прямо в PHP-файле, но только не тегами <?php ?>, так как это противоречит модели MVC, а "тегами".
Совершенно не противоречит... Откуда такие предрассудки? | |
|
|
|
|
|
|
|
для: Николай2357
(16.06.2010 в 00:48)
| | Окей, я потому там и исправил на "может противоречить", так как чрезмерные обращения к контроллеру из шаблона могут и правда ввести в заблуждение, а короткие вызовы тех или иных функций вполне уместны. Не так ли? | |
|
|
|
|
|
|
|
для: bishake
(16.06.2010 в 00:35)
| | Николай2357
> Именно! Поэтому я и хочу писать прямо в PHP-файле, но только не тегами <?php ?>, так как это может противоречить модели MVC, а "тегами".
Разделение логики и представления не означает, что в шаблонах должна быть тупо статика, никаких вызовов функций и т.д.
Боюсь ошибиться, но, по-моему, именно у Николай2357 есть сайт, на котором он хорошо описал создание движка с использованием архитектуры MVC.
> В XSLT теперь появилось желание разобраться и поюзать -)
Это не новенькую игру потестить, поверьте, там придется мозгами пошевелить :) | |
|
|
|
|
|
|
|
для: neadekvat
(16.06.2010 в 01:07)
| | Боюсь ошибиться, но, по-моему, именно у Николай2357 есть сайт, на котором он хорошо описал создание движка с использованием архитектуры MVC.
Вы не ошиблись. Но.
Положа руку на сердце, я не стал бы это называть MVC... Но раз людям нравится - пусть.
Любые рамки в прогаммировании (mvc, шаблонизация, паттерны и так далее), в которые обычно вгоняют людей популяризаторы, я считаю неуместными.
Вот и живой пример - человек не понял откуда и куда растут ноги, но уже пытается забиться под общую гребенку.
Печально.(((( | |
|
|
|
|
|
|
|
для: Николай2357
(16.06.2010 в 01:29)
| | >Вот и живой пример
Абсолютно согласен. Я в MVC, как в таковом, только недавно стал копаться, вот поэтому я и запостился тут, чтобы всё-таки НЕ "забиться под общую гребёнку". | |
|
|
|
|
|
|
|
для: bishake
(16.06.2010 в 01:36)
| | Есть принципы рациональности. Тот же паттерн MVC трактуется совершенно по разному даже в рамках прославленных фреймворков. Возьмите ZEND и CAKE к примеру. Реализация может быть совершенно различной, не зря в википедии столько стрелок.
А на самом деле все зависит от того, что требуется на данный момент.
Иногда полезно применить и говнокодинг смешение, иногда никуда не деться от шаблонизации, иногда натив более рационален...
Каждый выбирает своё.
Мне почему то кажется, что если выбрать что то одно, и принять это как единственно правильное решение, то... Да впрочем вот, классно кто то написал.))) | |
|
|
|
|
|
|
|
для: Николай2357
(16.06.2010 в 02:11)
| | Когда-то читал, себя не нашел и обиделся :) | |
|
|
|
|
|
|
|
для: neadekvat
(16.06.2010 в 02:17)
| | Когда-то читал, себя не нашел и обиделся :)
Ну значит все впереди)))
А если серьёзно, то очень много похоже на правду. Особенно последний пункт.
Мне вот повезло, я не проходил это по порядку. Почти сразу оказался на последней ступени. Имеется ввиду не статус, а мировоззрение.
Всё благодаря этому форуму (очередной раз спасибо создателем) и его постояльцам. Наверняка понятно, кого я имею ввиду.
Это лучший обучающий ресурс (по крайней мере в рускоязычном секторе). | |
|
|
|
|
|
|
|
для: Николай2357
(16.06.2010 в 02:56)
| | > Наверняка понятно, кого я имею ввиду.
Плюстыщапиццот, на мое мировоззрение здешний форум и люди тоже сильно повлияли - таки сюда я пришел ну совсем зеленым (это можно прочесть из первых моих созданных тем :) ) | |
|
|
|
|
|
|
|
для: Николай2357
(16.06.2010 в 02:11)
| | Согласен - для каждой задачи - своё решение. Пока я выбрал для себя CodeIgniter.
P.S. За хабр отдельное спасибо, поржал -)) | |
|
|
|
|
|
|
|
для: bishake
(16.06.2010 в 02:37)
| | Есть еще один фреймворк, по сути, сделанный на основе CodeIgniter - Kohana (спасибо Тень за подсказку) Я бы к нему обратился (а я к нему и обратился), ибо Kohana был выделен в отдельный фреймворк не от хорошей жизни CodeIgniter :) | |
|
|
|
|
|
|
|
для: neadekvat
(16.06.2010 в 12:39)
| | Спасибо, буду разбираться и в кохане ;) | |
|
|
|