====== Проект bmipk.ru ======
===== Февраль, 2016 =====
**Февраль, 2016 г.**
Завершен.
==== Цели проекта ====
Доработка анкеты выпускника на сайте Башкирского межотраслевого института.
==== Особенности ====
CMS Symfony, HTML, JavaScript, PHP, AJAX.
==== Описание ====
{{ :projects:lp:project-lp_bmipk.ru.png?300|Проект bmipk.ru}}
Очередная задачка на Symfony. Второй раз сталкиваюсь с этой CMS и второй раз первоначальный разработчик был неопытен.
Очень много проблем было с фронтом - подключались не существующие JS библиотеки, в самописных JS были опечатки. Из-за все этого часть заложенного функционала просто не работала. В целом не ясно как этот проект вообще сдавался заказчику.
Только правка этих мелких ошибок решила половину ТЗ. Для остального же пришлось расширить класс формы анкеты и доработать обработчик формы. Критической правкой оказалось разбиение поля "№ группы" на два - отдельно год выпуска, отдельно номер. Данные из формы записываются в разные базы данных (частично дублируясь) - часть пишется в базу данных анкет, а часть в общую базу. Если анкеты были конечным элементом и было достаточно расширить БД новыми полями и описать поля и их валидаторы в классе формы, то основную базу трогать не хотелось. В ней создавались пользователи и для них частично сохранялись данные из анкеты - мало ли где эти данные еще используются (как минимум в админке для поиска по анкетам).
Чтобы сохранить функционал, я перед сохранением формы я получил все поля формы из объекта, добавил в них нужное мне значение и заново сохранил в объекте. Такой подход может удивить, но с точки зрения ООП именно так и нужно работать. Хотя надо признать у меня и не было другого способа - поле класса с данными из формы приватно.