Шаблоны: супервизор

Фанат

oncle terrible
Команда форума
хочется четвертовать того, кто таким образом нарушает MVC.
Это ты тоже писал чуть выше.
Извини, разобраться в хитросплетениях твоих принципов разработки сходу не удалось.

Шаблон не дергает никай бизнес логики.
после того, как я доказал тебе, что это не так, получаю ответ в стиле "Летают. Только нызенько-нызенко!". Только что было "четвертовать", а сейчас уже "но никакого архитектурного криминала в этом не наблюдается".
Спасибо за искреннее желание помочь.
 

Фанат

oncle terrible
Команда форума
Фанат, Вы не пробовали подойти к реализации сущности "шаблон" с позиции объектности? Мне кажется, если применить такой подход, то всё станет ясно, как и что надо делать.
К сожалению, это совет "в стиле пхпклуба".
на место слова "объектность" можно подставить любой buzzword - и при этом информативность высказывания никак не изменится.

Проблема этого топика в том, что у всех здесь свои представления о терминологии и предмете разговора. поэтому употребление общих терминов не приносит никакой пользы.
Донести свою мысль можно только описывая практическое применение тех или иных механизмов. Что я и сделал для С.

Он в итоге остался при своём мнении, но хотя бы понял, о чем идет речь (хотя поначалу уходил сильно в сторону).

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

флоппик

promotor fidei
Команда форума
Партнер клуба
Проблема этого топика в том, что у всех здесь свои представления о терминологии и предмете разговора. поэтому употребление общих терминов не приносит никакой пользы.
Конечно, конечно. Остальные-то друг-друга понимают. Это ты нас не слышишь.
 

Фанат

oncle terrible
Команда форума
Кстати, об объектах.
Один такой подошел с позиции объектности. Фабьен Потенцер его фамилия. Получил в итоге шаблон, который в 60 раз тормознее* Смарти. Twig называется

---
* http://habrahabr.ru/post/128083/
Я понимаю, что тест искусственный, но чрезмерное увлечение объектами и закономерное падение производительности - налицо.
 

Фанат

oncle terrible
Команда форума
флоппик
я сильно подозреваю, что нет.
по этому топику хорошо видно, что люди думают, будто говорят об одном и том же, но когда начинаешь вдаваться в детали - выясняется, что они совсем о другом.

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

С.

Продвинутый новичок
Один такой подошел с позиции объектности. Фабьен Потенцер его фамилия. Получил в итоге шаблон, который в 60 раз тормознее* Смарти. Twig называется
Так ты то же самое делаешь. Пытаешься создать Идеальный MVC, нагородив контролеров и супервизоров, ради решения надуманной проблемы с title. Если признать, что этой проблемы нет, то все становится просто и огород не нужен.
 

С.

Продвинутый новичок
Я уже пытался тебе рассказать про методы before() и after() в которых такое и происходит обычно.
Метод это не может быть метод, это должен быть класс.
Поскольку в нем, во-первых, будет куча своих методов - на каждый виджет, а, во-вторых - много инстансов, по одному на каждый главный шаблон.
Вот пример, как ты пытаешься "понять". По принципу "этого не может быть, потому что этого не может быть никогда"
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
http://habrahabr.ru/post/128083/
Я понимаю, что тест искусственный, но чрезмерное увлечение объектами и закономерное падение производительности - налицо.
Если ты понимаешь, что тест искусственный (я бы точнее сказал, высосанный из детородного органа), то зачем на него ссылаться?
 

Фанат

oncle terrible
Команда форума
Вот, кстати, в копилку примеров из реальной жизни.
У сайта куча субдоменов. Чисто для красоты*, сами скрипты и шаблоны одни и те же.

Но у субдоменов буквально одна переменная в шаблоне отличается. Речь об основном шаблоне сайта, разумеется.

И где эту переменную инитить, кроме как в супервизоре? :)
 

Фанат

oncle terrible
Команда форума
Нет.
Я нигде не говорил фразу "супервизор шаблонизатора".
Вообще, слово супервизор представляется мне сейчас неудачным.

На самом деле я имею в виду всего лишь "Контроллер главного шаблона".
Точно так же, как контроллер конкретной страницы, по сути, является контроллером шаблона этой самой страницы, у Главного шаблона тоже должен быть свой контроллер.
 

Absinthe

жожо
У меня есть такое в многоуровневых шаблонах.
В наследуемых немного по другому.
 

С.

Продвинутый новичок
Мы уже выяснили, что в мире существую таки программисты, которые не используют контролеры шаблонов вообще (не главного, ни страницы). Переменная субдомена инитится ровно там же, где инитятся все прочие внешние данные (ГЕТ, ПОСТ и т.д.). И эта переменная не принадлежит исключительно главному шаблону, она может понадобиться в любом из блоков тоже.
 

fixxxer

К.О.
Партнер клуба
Я до сих пор не понимаю, в чем состоит великая проблема.

Есть, допустим, проект. Есть пейдж контроллеры, которые наследуются от базового.
Что мешает поместить весь код "супервайзора" в метод базового класса?
 

Фанат

oncle terrible
Команда форума
Я до сих пор не понимаю, в чем состоит великая проблема.
проблема в том, что я не могу толком объяснить.
так что Кость, я очень на тебя надеюсь, что ты мне поможешь сформулировать.
"пейдж-контроллер", что бы это ни было - это не то. Вообще вопрос не об архитектуре ООП, а об архитектуре приложения. Всё, о чём я говорю, может быть сделано без единого гвоздя, в смысле класса. Речь о приложении

1. У нас есть то, что мы называем контроллером. Это штука, которую запускает роутер, когда понимает, какую конкретно страницу запросил пользователь.
Этот контроллер что-то там урчит, переваривает, готовит запросы в модель/бд, получает данные, форматирует их, и отдаёт во вью. К этой схеме вопросов нет?

2. Дальше Вью берет шаблон и натягивает на него данные (это здесь, как я понимаю, участвует упомянутый пейдж-контроллер?). Но тут важный момент. Страница сайта у нас состоит из двух, грубо говоря, частей - шапки и контента. Так вот контроллер из п.1 занимается только данными для контента. А шапка остаётся бесхозной. Сиротой. Никто подготовкой данных для нее не занимается, и в итоге начинается треш - часть данных готовится в контроллере контента, часть - в самом шаблоне, часть ещё где-то.

А я, всего-то лишь хочу, чтобы у шаблона шапки тоже был свой контроллер, как у каждой страницы контента.

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

Sufir

Я не волшебник, я только учусь
А я, всего-то лишь хочу, чтобы у шаблона шапки тоже был свой контроллер, как у каждой страницы контента.
Шапка и контент - блоки страницы. А если в шапке есть несколько отдельных блоков, для каждого свой контроллер?
 

Beavis

Banned
Шапка и контент - блоки страницы. А если в шапке есть несколько отдельных блоков, для каждого свой контроллер?
А вопрос в том, какой "контроллер" будет получать данные из этих контроллеров, и передавать в шапку?
 

Yoskaldyr

"Спамер"
Партнер клуба
Фанат
Так у Вас насколько я понимаю классический пример HMVC.
Так почему тогда не использовать инструменты где все это уже есть?
 

Фанат

oncle terrible
Команда форума
Sufir
В принципе, так оно и есть. Только контроллер блока сам никуда не лезет, а ждет, пока его позовут.
Скажем, на странице товара выводятся последние темы из ветки форума, посвященного данному товару.
Контроллер товара обращается за данными к контроллеру форума, получает их, и отдает в шаблон вместе с остальными..
 

Фанат

oncle terrible
Команда форума
Yoskaldyr
Это не совсем то. Здесь не нужен МВЦ. Шапке не нужна модель. Шапке нужно только, чтобы в нужном порядке её контроллер обратился к нескольким сущностям и получил у них данные
 
Сверху