Грамотная организация view с поддержкой мультисайтовости и скинов

phprus

Moderator
Команда форума
phprus
Алгоритмическая сложность именно решения.
Упс. Беру свои слова назад. Кажется я попутал термин "Алгоритмическая сложность" и "сложность алгоритма(вычисления)". Все что я говорил относится ко второму термину.
Возможно по тому, что термин "Алгоритмическая сложность" в значении минимально необходимый уровень интеллекта для решения поставленной задачи (с) http://www.rsdn.ru/article/philosophy/Complexity.xml я раньше не встречал.
 

HraKK

Мудак
Команда форума
Alien85
Когда ты поймешь что такое ООП и для чего оно, все вопросы пропадут сами. А пока лучше не высказывай свое фё, типа да я и так лучше вас знаю.
 

Koc

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

Но я все равно не догоняю, как в event-listener'е распознать админский это контроллер или нет? Опять аннотации?) Или сделать соглашение, что все контроллеры будут формата Module_(area_name)_Foo?
 

symfo

Новичок
Koc, очень не рекомендую пока писать реальные проекты на симфони2, еще даже релиз не вышел. В течении как минимум полугода после релиза я бы не рискнул использовать С2 в реальных проектах, а уж тем более если для заказчика. За эти пол года лучше изучить систему поглубже.
Лично я пока даже не изучаю ее, просто смотрю, пробую. Но применять думаю не ранее следующего года.
Так что, пока, какую либо реализацию мультивью в С2 я не возьмусь рекоммендовать. Только для С1.4, конечно, если вам это интересно.


Фигасебе, симфони идет по моему пути. Скоро догонит.
HraKK, это юмор такой? :D Или вы реально считаете, что один человек может написать систему лучше, чем команда? Впрочем, я не исключаю существование гениальных программистов, способных соперничать с целой командой профессионалов, но скорее чисто теоретически :).
 

craz

Нестандартное звание
HraKK, это юмор такой? :D Или вы реально считаете, что один человек может написать систему лучше, чем команда? Впрочем, я не исключаю существование гениальных программистов, способных соперничать с целой командой профессионалов, но скорее чисто теоретически :).
а с чего взяли, что он один?
 

Koc

Новичок
Так что, пока, какую либо реализацию мультивью в С2 я не возьмусь рекоммендовать. Только для С1.4, конечно, если вам это интересно.
очень интересно.

Та да, сф2 сильно быстро меняется. В PR9 убрали суффикс бандлы, в PR10 вернули))
 

symfo

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

Koc, тогда высплюсь и постараюсь отписать.
 

symfo

Новичок
На symfony 1.4 я бы сделал так:

Весь проект лежит в одной папке, выше SiteRoot - /home/project.
Многосайтовость реализуется созданием ссылок для конкретного сайта на необходимые директории в корневом проекте. Например, если нужно сделать модуль User общим для некоторых сайтов, то в соответствующих папках проекта (/home/site1.com/project/apps/app1/modules) делаются линки на /home/project/apps/app1/modules/User. Если нужно целое приложение - на /home/project/apps/app1.
Смена тем реализуется созданием папки темы в:
/home/project/apps/app1/templates - тут хранится layout.php
/home/project/apps/app1/modules/module1/templates
/home/project/web/css
/home/project/web/images
И добавлением ее в настройки проекта.

Создается потомок sfAction, в котором переопределяются методы для работы с партиалами, для добавления поддержки тем.
Остается написать deploy-скрипт (или юзать capifony), и управлять всем этим через его файл конфигурации.
 

Koc

Новичок
/home/project/apps/app1/modules/module1/templates
как бы дефолтовый стиль для модуля? он грузится если в /home/project/apps/app1/templates ничего нету?

делаются линки
а что если это дело давать разруливать через autoloader (пути на папку с общими модулями указать)?


Многосайтовость реализуется
оффтоп: а вот как ты вообще оцениваешь роутинг в sf2? Как его можно (и реально ли вообще?) расширить до поддержки hostname (matching+generation), chaining?
 

AmdY

Пью пиво
Команда форума
автовыбор очень просто реализуется издавна через include path или костыль с симлинками
 

symfo

Новичок
как бы дефолтовый стиль для модуля? он грузится если в /home/project/apps/app1/templates ничего нету?
Нет. В /home/project/apps/app1/templates лежат шаблоны layout для разных тем, а в /home/project/apps/app1/modules/module1/templates - партиалы для модуля. Например шаблоны различных страниц (без layout), и партиалы (формы, блоки, ajax-ответы...), для данного модуля.
/home/project/apps/app1/templates/layout.php
/home/project/apps/app1/templates/theme1/layout.php

/home/project/apps/app1/modules/module1/templates/_form.php
/home/project/apps/app1/modules/module1/templates/theme1/_form.php

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


а что если это дело давать разруливать через autoloader (пути на папку с общими модулями указать)?
Ну это уже лезть в ядро фреймворка. Я предпочитаю этого не делать без крайней необходимости.

оффтоп: а вот как ты вообще оцениваешь роутинг в sf2? Как его можно (и реально ли вообще?) расширить до поддержки hostname (matching+generation), chaining?
Мне сложно его объективно оценивать, т.к. это нужно хорошенько "повертеть" его в различных ситуациях. До выхода релиза я решил не углубляться в двойку.

автовыбор очень просто реализуется издавна через include path или костыль с симлинками
Я не считаю управление проектом с использованием симлинков костылем. Например капифони на их основе организует деплой без остановки работы ресурса.
 

Koc

Новичок
symfo
понял. Но имхо и партиалы и лейауты для конкретного модуля лучше вместе хранить


Ну это уже лезть в ядро фреймворка.
да ну, это же можно сказать тупо конфигурация.
 

symfo

Новичок
Но имхо и партиалы и лейауты для конкретного модуля лучше вместе хранить
А они и хранятся вместе. Просто есть общий layout для приложения, но никто не диктует, что в нем должно быть :). Тем более его можно и отключить в любом модуле, тогда какой-либо шаблон модуля может быть со своим layout.

да ну, это же можно сказать тупо конфигурация.
Да, что-то я погорячился :). Конечно же, можно и через него, но конфигурация через симлинки мне больше нравится. Особенно если файл конфигурации деплой-скрипта достаточно продуман. Но тут кому как удобно.
 
Сверху