crocodile2u
http://vbolshov.org.ru
Гравицапа:
CakePHP не использую - но предполагаю, что хелперы там, возможно, - то же самое, что я имею в виду (сорри, пока не успел сходить по ссылкам).
fisher
"NativePHP-шаблоны с поддержкой хелперов" - тут все очень просто и я уверен, что чем-то подобным ты пользуешься и сам.
Поясню на примере.
Проблема: нужно отображать новости на разных страницах ресурса (шаблон отображения отдельной новости везде одинаков).
Решение 1: в тех шаблонах, где нужно отображать новости, добавить куски, отвечающие за вывод новостей. Быстро, никаких инклюдов, но плохо поддерживается (дублирование).
Решение 2: создать отдельный шаблон новости и инклюдить его везде, где нужно. Хорошо поддерживается, но потенциально тормозит (инклюды - и скорее всего, в цикле)
Решение 3: создать хелпер. Самый простой вариант - функция, допустим, display_news_piece($newsRow). Тогда инклюд нужен только для того, чтобы заинклюдит функцию, и мы сможем ее использовать там, где пожелаем. Я предпочитаю, однако, хелперы в виде небольших классов-хелперов с небольшим кол-вом методов, при этом сами методы доступны во Вью как методы этого самого Вью - надо только предвартельно зарегистрировать в нем нужный класс(объект) хелпера.
Надеюсь, я понятно изъяснил суть подхода. Если что, пишите - я приведу пример, и, возможно, это будет более понятно.
CakePHP не использую - но предполагаю, что хелперы там, возможно, - то же самое, что я имею в виду (сорри, пока не успел сходить по ссылкам).
fisher
"NativePHP-шаблоны с поддержкой хелперов" - тут все очень просто и я уверен, что чем-то подобным ты пользуешься и сам.
Поясню на примере.
Проблема: нужно отображать новости на разных страницах ресурса (шаблон отображения отдельной новости везде одинаков).
Решение 1: в тех шаблонах, где нужно отображать новости, добавить куски, отвечающие за вывод новостей. Быстро, никаких инклюдов, но плохо поддерживается (дублирование).
Решение 2: создать отдельный шаблон новости и инклюдить его везде, где нужно. Хорошо поддерживается, но потенциально тормозит (инклюды - и скорее всего, в цикле)
Решение 3: создать хелпер. Самый простой вариант - функция, допустим, display_news_piece($newsRow). Тогда инклюд нужен только для того, чтобы заинклюдит функцию, и мы сможем ее использовать там, где пожелаем. Я предпочитаю, однако, хелперы в виде небольших классов-хелперов с небольшим кол-вом методов, при этом сами методы доступны во Вью как методы этого самого Вью - надо только предвартельно зарегистрировать в нем нужный класс(объект) хелпера.
Надеюсь, я понятно изъяснил суть подхода. Если что, пишите - я приведу пример, и, возможно, это будет более понятно.