Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Шаблон в php-файле
 
 автор: bishake   (15.06.2010 в 21:02)   письмо автору
 
 

Доброе время суток!

Скажите пожалуйста, есть ли способ (например, используя директивы .htaccess) заставить php-парсер по-особому обрабатывать определённые теги или символы? Смысл таков: встретив "особый" тег, интерпретатор обратится к соответствующему модулю и выполнит какую-то команду, выполняя роль шаблонизатора:

<div> Hello, </div> <!-- обычный вывод -->
<getValue>userName</getValue> <!-- динамический вывод --> 

  Ответить  
 
 автор: nikita2206   (15.06.2010 в 21:11)   письмо автору
 
   для: bishake   (15.06.2010 в 21:02)
 

Нет, для этого есть обычные шаблонизаторы...

  Ответить  
 
 автор: bishake   (15.06.2010 в 22:13)   письмо автору
 
   для: nikita2206   (15.06.2010 в 21:11)
 

Эх, а так хочется избежать парсинга шаблонов... Это же ИМХО одна из самых громоздких операций MVC

  Ответить  
 
 автор: neadekvat   (15.06.2010 в 22:37)   письмо автору
 
   для: bishake   (15.06.2010 в 22:13)
 

Так не вы же парсить будете. И даже парсер писать тоже будете не вы.
Или вас просто затрудняет учить синтаксис шаблонизаторов?

К тому же, PHP - сам себе неплохой шаблонизатор.
Используйте функции. То есть, вместо
<loadModule>SomeModule</loadModule>

пишите
<?php loadmodule('SomeModule'); ?>

Так ведь проще..вообще непонятно, че за велосипед вы изобретаете. Чем-то смахивает на XSLT, но только введением своих "тэгов".

  Ответить  
 
 автор: nikita2206   (15.06.2010 в 23:50)   письмо автору
 
   для: neadekvat   (15.06.2010 в 22:37)
 

Абсолютно согласен. Почитайте про CodeIgniter, там например многие вместо шаблонизатора используют как-раз сам пхп в файлах вида... (Это я топикстартеру)

  Ответить  
 
 автор: bishake   (16.06.2010 в 00:43)   письмо автору
 
   для: nikita2206   (15.06.2010 в 23:50)
 

Спасибо за справку! Уже читаю, и нашёл там свой велосипед:
"Хотя с CodeIgniter и поставляется простой парсер шаблонов, но он совсем не обязателен для использования. Система шаблонов не может сравниться по производительности с самим PHP, и ее синтаксис, как правило, лишь несколько проще, чем обучение основам PHP. "

  Ответить  
 
 автор: bishake   (16.06.2010 в 00:35)   письмо автору
 
   для: neadekvat   (15.06.2010 в 22:37)
 

>Или вас просто затрудняет учить синтаксис шаблонизаторов?
Не затрудняет. Просто считаю, что метод парсинга шаблона не совершенен.

>К тому же, PHP - сам себе неплохой шаблонизатор.
Именно! Поэтому я и хочу писать прямо в PHP-файле, но только не тегами <?php ?>, так как это может противоречить модели MVC, а "тегами".

>Чем-то смахивает на XSLT, но только введением своих "тэгов".
А вот за это замечание спасибо! В XSLT теперь появилось желание разобраться и поюзать -)

  Ответить  
 
 автор: Николай2357   (16.06.2010 в 00:48)   письмо автору
 
   для: bishake   (16.06.2010 в 00:35)
 

Именно! Поэтому я и хочу писать прямо в PHP-файле, но только не тегами <?php ?>, так как это противоречит модели MVC, а "тегами".
Совершенно не противоречит... Откуда такие предрассудки?

  Ответить  
 
 автор: bishake   (16.06.2010 в 01:32)   письмо автору
 
   для: Николай2357   (16.06.2010 в 00:48)
 

Окей, я потому там и исправил на "может противоречить", так как чрезмерные обращения к контроллеру из шаблона могут и правда ввести в заблуждение, а короткие вызовы тех или иных функций вполне уместны. Не так ли?

  Ответить  
 
 автор: neadekvat   (16.06.2010 в 01:07)   письмо автору
 
   для: bishake   (16.06.2010 в 00:35)
 

Николай2357

> Именно! Поэтому я и хочу писать прямо в PHP-файле, но только не тегами <?php ?>, так как это может противоречить модели MVC, а "тегами".
Разделение логики и представления не означает, что в шаблонах должна быть тупо статика, никаких вызовов функций и т.д.
Боюсь ошибиться, но, по-моему, именно у Николай2357 есть сайт, на котором он хорошо описал создание движка с использованием архитектуры MVC.

> В XSLT теперь появилось желание разобраться и поюзать -)
Это не новенькую игру потестить, поверьте, там придется мозгами пошевелить :)

  Ответить  
 
 автор: Николай2357   (16.06.2010 в 01:29)   письмо автору
 
   для: neadekvat   (16.06.2010 в 01:07)
 

Боюсь ошибиться, но, по-моему, именно у Николай2357 есть сайт, на котором он хорошо описал создание движка с использованием архитектуры MVC.
Вы не ошиблись. Но.
Положа руку на сердце, я не стал бы это называть MVC... Но раз людям нравится - пусть.
Любые рамки в прогаммировании (mvc, шаблонизация, паттерны и так далее), в которые обычно вгоняют людей популяризаторы, я считаю неуместными.

Вот и живой пример - человек не понял откуда и куда растут ноги, но уже пытается забиться под общую гребенку.
Печально.((((

  Ответить  
 
 автор: bishake   (16.06.2010 в 01:36)   письмо автору
 
   для: Николай2357   (16.06.2010 в 01:29)
 

>Вот и живой пример
Абсолютно согласен. Я в MVC, как в таковом, только недавно стал копаться, вот поэтому я и запостился тут, чтобы всё-таки НЕ "забиться под общую гребёнку".

  Ответить  
 
 автор: Николай2357   (16.06.2010 в 02:11)   письмо автору
 
   для: bishake   (16.06.2010 в 01:36)
 

Есть принципы рациональности. Тот же паттерн MVC трактуется совершенно по разному даже в рамках прославленных фреймворков. Возьмите ZEND и CAKE к примеру. Реализация может быть совершенно различной, не зря в википедии столько стрелок.

А на самом деле все зависит от того, что требуется на данный момент.
Иногда полезно применить и говнокодинг смешение, иногда никуда не деться от шаблонизации, иногда натив более рационален...
Каждый выбирает своё.
Мне почему то кажется, что если выбрать что то одно, и принять это как единственно правильное решение, то... Да впрочем вот, классно кто то написал.)))

  Ответить  
 
 автор: neadekvat   (16.06.2010 в 02:17)   письмо автору
 
   для: Николай2357   (16.06.2010 в 02:11)
 

Когда-то читал, себя не нашел и обиделся :)

  Ответить  
 
 автор: Николай2357   (16.06.2010 в 02:56)   письмо автору
 
   для: neadekvat   (16.06.2010 в 02:17)
 

Когда-то читал, себя не нашел и обиделся :)
Ну значит все впереди)))
А если серьёзно, то очень много похоже на правду. Особенно последний пункт.
Мне вот повезло, я не проходил это по порядку. Почти сразу оказался на последней ступени. Имеется ввиду не статус, а мировоззрение.
Всё благодаря этому форуму (очередной раз спасибо создателем) и его постояльцам. Наверняка понятно, кого я имею ввиду.
Это лучший обучающий ресурс (по крайней мере в рускоязычном секторе).

  Ответить  
 
 автор: neadekvat   (16.06.2010 в 12:37)   письмо автору
 
   для: Николай2357   (16.06.2010 в 02:56)
 

> Наверняка понятно, кого я имею ввиду.
Плюстыщапиццот, на мое мировоззрение здешний форум и люди тоже сильно повлияли - таки сюда я пришел ну совсем зеленым (это можно прочесть из первых моих созданных тем :) )

  Ответить  
 
 автор: bishake   (16.06.2010 в 02:37)   письмо автору
 
   для: Николай2357   (16.06.2010 в 02:11)
 

Согласен - для каждой задачи - своё решение. Пока я выбрал для себя CodeIgniter.
P.S. За хабр отдельное спасибо, поржал -))

  Ответить  
 
 автор: neadekvat   (16.06.2010 в 12:39)   письмо автору
 
   для: bishake   (16.06.2010 в 02:37)
 

Есть еще один фреймворк, по сути, сделанный на основе CodeIgniter - Kohana (спасибо Тень за подсказку) Я бы к нему обратился (а я к нему и обратился), ибо Kohana был выделен в отдельный фреймворк не от хорошей жизни CodeIgniter :)

  Ответить  
 
 автор: bishake   (16.06.2010 в 13:11)   письмо автору
 
   для: neadekvat   (16.06.2010 в 12:39)
 

Спасибо, буду разбираться и в кохане ;)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования