![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| NLspieler |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Уже давно бьюсь над проблемой полного разделения логики от отображения.
В итоге появилась идея сделать шаблонизатор. Вот пример логики приложения, которая достает например статьи:
А вся логика отображения записывается в шаблон. Шаблон выглядит примерно так:
Содержимое блока start отображается в самом начале, перед выводом самой первой статьи содержимое блока finish отображается в самом конце, после последней статьи. Перед каждой четвертой статьей отображается блок before:4 содержимое *define:class* говорит о том, что класс дива будет чередоваться: grey, white, grey, white и т.д. *do:class* как раз говорит о том, куда нужно поставить результат *define:class* Короче получился целый интерпретируемый язык Стоит ли реализовывать такой шаблонизатор или лучше по-старинке писать всю логику отображения на php? Это сообщение отредактировал(а) NLspieler - 4.9.2010, 14:41 |
||||
|
|||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
По моему не плохо но я предпочитаю слегка другой подход...
Строим файл шаблона на php и наш Controller вызывает Model просто перед include, Объявляя все переменные которые нужно... Затем вызывает нужный View Далее, если эта страницы не требует обновлений, и не изменяется каждый раз, то её можно занести в кэш, и больше никогда не обрабатывать Я думаю твоим коллегам будет сложно работать с примером как выше... А может другие предпочтут работать именно так, тут дело вкуса... Но вообще получилось нечто вроде symphony , я его за эти фокусы и не залюбил... Это сообщение отредактировал(а) Muerto - 4.9.2010, 14:49 |
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 1 Всего: 73 |
NLspieler,
мне кажется, верситальшик не будет счастлив работать с таким шаблонизатором. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| NLspieler |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Я же для себя делаю
Коллег нету, и пока их нет, подстраиваться нет необходимости. Я тут еще немного подумал и упростил проект шаблонизатора.
Теперь вроде все стало еще понятнее, хотя чего то все еще не хватает |
||||||
|
|||||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 1 Всего: 73 |
Для себя, конечно, можно делать все что угодно, но Вы же делаете шаблонизатор, что бы использовать его в проектах, а все проекты Вы собираетесь делать в одиночку и никому не показывать код? И чем Вас не устраивает логика отображения на том же php? Если Вы пишите в одиночку, то не так уж сложно контролировать себя и не пихать в шаблоны что-то большее чем логику отображения? -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
По мне так просто ужас ...
Но если тебе так проще чем просто через php прописать методом который я описал выше, то делай как тебе угодно... В конце концов если делаешь для себя, так нужно что бы: 1. Тебе так было проще 2. Оно тебе экономило время разработки 3. Желательно что бы было преимущество над стандартными методами вроде того которого я описал... ответ на 1, наверное да ответ на 2 может быть да только если твой шаблонизатор очень узкого направления как мне кажется а ответ на 3 я думаю однозначно нет... тут и ограничения в том что он выполняет только то что ты ему прописал где то, и в конце концов все равно это превращается в простой php твоим транслятором который читает файл и выполняет его... |
|||
|
||||
| capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: 9 Всего: 13 |
Очередной велосипед, только с квадратными колесами. Тратить время на такой код, который через пару недель будет вообще не понятен....
Если конечно это не вариант остаться в проекте, т.к. никто кроме вас в коде не разберется |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |