Почему же в жопу eval? Почему интерфейс не продуман? Толку с такого шаблонизатора, что идея была именно в элементарном и польностью функциональном, который не будет иметь кучу ненужного мусора, и в то же время иметь все необходимое. Никогда еще не сталкивался с такой количествой критики за раз, но было б интересно послушать более развернутые ответы
Практически все готовые шаблонизаторы, с которыми я работал, были громоздкими и навороченными. Имхо лучше использовать что-то длиной в 20 строчек и вынести условия и циклы в php код, где генерируется страница, чем утежелять сайт тем же Smarty. Да и свой код потом легче модифицировать, что-то добавлять или убирать, чем разбираться в тысячах строчках чужого проекта...
windburn Да всё хорошо, только вот эта строчка: eval("?>".$this->templateText."<?"); полная бредятина - гараздо лучше сделать echo $this->templateText если уж ты выбираешь подход str_replace. Вот почитай разницу.
Шаблонизаторы? Не мужики, давайте раз и навсегда расставим все точки над PHP Есть два вида шаблонных систем пассивные или активные. PHP: <? //вот это пример использования пассивных шаблонов $title = "Мой сайтик"; $data = array("Apache","PHP","MySQL"); $list = ""; foreach($data as $s)$list.=sprintf("<li>%s",$s); printf("<html><title>%s</title><body><ul>%s</ul></body></html>",$title,$list); ?> Недостаток пассивной системы состоит в том, что для каждого шаблона необходимо разрабатывать свой парсер. Поэтому юзайте PHP: PHP: <? //а вот это пример использования активных шаблонов $title = "Мой сайтик"; $data = array("Apache","PHP","MySQL"); ?> <html> <title><?=$title?></title> <body> <ul> <? foreach($data as $s){ ?><li><?=$s?><? } ?> </ul> </body> <html> Ах, как же! Верстальщикам нельзя видет $,? и foreach...if...else... А как же JavaScript? Его верстальщикам можно видеть???
Koc Он просто правда считает, что его пример "пассивного" шаблонизатора эквивалентен Смарти или хотя-бы Дружбе =)
Для разделения бизнес логики от логики отображения. Но ты никогда не работал в команде больше одного человека, поэтому тебе не понять, да. Сперва добейся, да.
А так трудно? PHP: <? include("./module.php");//бизнес логика здесь include("./template.php");//логика отображения здесь ?> Попробуйте теперь вы добиться чего нибудь проще...
Работает? Ну и отлично. А теперь - у тебя граф решений глубиной 5ть и больше, и веток на 20 в ширину. Как твой код будет выглядеть?
HTML и вставки PHP кода Я ж не говорю что весь в код в один файл пихать надо. Надо уметь грамотно систематизировать исходный код. Тогда и 100 веток - по барабану =)