Я просто хотел показать, что с помощью SQL можно сделать больше, чем кажется на первый взгляд. Не факт, что он вам подойдет, но и не факт, что не подойдет :)
Может быть, стоит взять пример самого сложного условия, какое сможете придумать, и попробовать его решить с помощью SQL?
Ну в моем варианте как раз из-за пункта 2 в одном месте стоят два подчеркивания — там, где кончается полное имя Getter'а и начинается имя связанного класса.
А вообще, мне все равно кажется, что нормальным именем было бы:
EduPortal_Application_Rating_AddonTestingGetter, а еще лучше юзать неймспейсы.
Если у вас технические проблемы и так сделать не получается — прийдется вам мучиться с непонятными длинными строками… что ж, повод преодолеть технические проблемы ;)
Я так понимаю, что у вас не MVC в чистом виде, так как присутствуют классы-формы со своим поведением.
Как я понимаю MVC: есть View, в котором задается чисто отображение/layout.
Есть Model — это контейнер данных, который подсовывается View'шке. В каком-то смысле, это аналог паттерна DTO.
И есть контроллер, который осуществляет роутинг: какое действие выполнить, куда перенаправить запрос, и т.п. И контроллер, как раз, и формирует Model'и, которые подаёт во View.
Методы бизнес-логики должны вызываться как раз из контроллера. Больше, собственно, неоткуда.
То же самое с заполнением Entity-объектов.
А вот какую конкретно функцию у вас выполняют классы-формы, и почему вы думаете, что это вписывается в концепцию MVC, — непонятно :)
, EduPortal_Application_Rating_Getter_Abstract — странное имя. Зачем дописывать Abstract в конце, если у класса в сигнатуре уже абстрактность? Не знаю, как у вас в PHP принято, но я бы назвал EduPortal_Application_Rating_BaseGetter.
А получатель из Testing — он, разве, не принадлежит логически к самому модулю Testing? Если так — то почему бы его туда не поместить и не назвать: EduPortal_Addon_Testing_RatingGetter?
Непонятно. Зачем вам нужен отдельный svn на продакшн-сервере, чтобы откатиться на предыдущую версию?
Мы делаем так: когда деплоим, записываем в папку с приложением файлик version.txt, в котором содержится текущий номер ревизии SVN.
Если нужно откатиться, то забираем из истории SVN нужный номер ревизии и деплоим его.
Естественно, нужно еще и базу данных откатывать на нужную версию, чтобы она соответствовала версии приложения.
Вы, для начала, ссылку на копию поста в ЖЖ дайте :)
Впрочем, теперь публикация этого поста на Хабре нарушит правила, т.к., в соответствии с правилами Хабра, контент должен появляться на Хабре раньше, чем на других сайтах.