Февраль, 2016 г. Завершен.
Доработка анкеты выпускника на сайте Башкирского межотраслевого института.
CMS Symfony, HTML, JavaScript, PHP, AJAX.
Очередная задачка на Symfony. Второй раз сталкиваюсь с этой CMS и второй раз первоначальный разработчик был неопытен.
Очень много проблем было с фронтом - подключались не существующие JS библиотеки, в самописных JS были опечатки. Из-за все этого часть заложенного функционала просто не работала. В целом не ясно как этот проект вообще сдавался заказчику.
Только правка этих мелких ошибок решила половину ТЗ. Для остального же пришлось расширить класс формы анкеты и доработать обработчик формы. Критической правкой оказалось разбиение поля «№ группы» на два - отдельно год выпуска, отдельно номер. Данные из формы записываются в разные базы данных (частично дублируясь) - часть пишется в базу данных анкет, а часть в общую базу. Если анкеты были конечным элементом и было достаточно расширить БД новыми полями и описать поля и их валидаторы в классе формы, то основную базу трогать не хотелось. В ней создавались пользователи и для них частично сохранялись данные из анкеты - мало ли где эти данные еще используются (как минимум в админке для поиска по анкетам).
Чтобы сохранить функционал, я перед сохранением формы я получил все поля формы из объекта, добавил в них нужное мне значение и заново сохранил в объекте. Такой подход может удивить, но с точки зрения ООП именно так и нужно работать. Хотя надо признать у меня и не было другого способа - поле класса с данными из формы приватно.