Уже на Symfony 2.1 проекты делаем, с выходом RC все достаточно стабильно. 2,0 уже давно стабильная и не глючная. Дико нравится.
А по поводу проблемы… $order->user->shoesSizeName. А связи прописать уже для user. А в вашем примере мне кажется вы пытались непосредственно к заказу это дело привязать.
Упс, это должен был быть комментарий к ответу выше… ну да несуть.
По сути функционал чуть пробежать, и самое важное — описать плюшки для разработчиков, ибо обычно этот вопрос обходится стороной при «обзорах». Я пока не видел ни одной CMS которая бы меня покрыла мои требования (гибкая и легкая, для сайтов визиток там. Для всего остального мне проще взять фреймворк) и с хорошим и качественным кодом.
Пару лет назад я писал свою систему маршрутизации на основе комбинирования вашего подхода со слэшами ну и регулярными выражениями. Какое же это было… неудобное дело…
Проблемы разметки запросто решаются при помощи библиотеки html5shiv. Реалии же таковы, что JS отключен у незначительного процента людей. Врят-ли в какой-то фирме групповыми настройками запрещен вызов яваскрипта. Проблемы с разметкой и IE (7-ой версии если быть точнее) у меня были когда верстка генерилась средствами JS и тут уже пришлось дублировать теги посредствам дива с классом этого тега.
Подлагивание возможно при выполнении каких-то фоновых задачь на слабых машинах. Наблюдал такое только когда работал с кодом в момент сканирования документа, когда проц грузило еще несколько довольно объемных задач. В целом же субьективно он работает шустрее NetBeans-а. Хотя может в последних версиях они и сравнялись.
Ну у нас это было так: «Чуваки, надо бы кодинг стайл замутить общий… давайте возьмем кодинг стайл от ZEND + поправим то что не нравится». Точно так же вы можете взять допустим кодинг стайл того же Qt или еще какой. Их много. И тот что понравится всем, ну или просто компромиссный вариант, и будет вашим стандартом.
Про прототипное наследование можно почитать тут, хотя конкретно в вашем случае это явно никак вам не поможет.
Ваш код можно улучшить так:
1) постараться вынести все правила валидации в какой нить конфиг, мол для такого-то id соответствуют такие-то правила.
2) в самой функции брать значение, брать правила и прогонять.
3) реализовать функцию которая будет управлять ошибками (добавление в список, продумать как сделать так что бы ошибка удалялась после изменения значения поля на коректное). Просто функция вида appendError(message). Это избавит вас от макарон и дублирующегося кода разметки.
Если уж очень нравится концепция с классами — можете реализовать абстрактный класс валидатора (в прототипе только метода validate( value ) и поле message, от которого потом расширять обычные валидаторы типа email, minlength, maxlength и т.д, затем уже добавить на основе тех что есть или просто от абстрактного добавить кастомные валидаторы (мол для проверки уникальности логина, который бы связывался с сервером и т.д.)
Когда вы это все сделаете, можете для каждого айдишника добавить свой валидатор. Можно даже сделать так что бы валидаторы сами мониторили состояния своих полей.
Если же вам надо что бы кто-то за вас оформил должным образом этого макаронного монстра, то уж извините.
к слову, у вас в коде очень много повторяющейся ереси. Например… добавление ошибок можно вынести в одну функцию в которую будет передаваться только сообщение, и быть может указатель на эллемент для которого была совершена ошибка. Последнее нужно, например, что бы через какой $('html,body').scrollTop опустить пользователя к нужному полю. Ошибки же писать списком удобно для разработчика, но я например стараюсь этого избегать. Мне больше по душе какие tooltips или чего еще.