Иван М: Вот если продаст, будет моральным... ну вы поняли. Но его и за это никто не накажет. В России услуги адвоката на периферии стоят от 50 000 рублей. Проект - 75 000 бюджет. Кто за него судиться будет?
Иван М: А вообще, я не даже не понял смысл этой перепалки. В этой истории и так понятно, что если программер не затупит - ребята не получат код без оплаты. Вопрос только в КПД. Не вижу смысла добиваться встречи с директором, если работа не сдана должным образом менеджеру. Получится странная история: человек нихрена не сделал и требует встречи с директором. Второй момент: думаю, не стоит обманывать себя и заказчика по поводу желания и возможности работать в таких условиях. Деньги задерживаются? Работу надо сдавать по два раза? Код пропадает? Системы контроля версий нету? Пускай, разберутся со своими проблемами. Или пускай доплатят: программист оплатит им GIT, сделает репозиторий, CI. Всё будет круто.
Иван М: Вот вся эта цепочка озвучена в моей рекомендации в самом начале этой ветки. Разбирательств не будет. Разбирательство может быть, если программист продаст код. Но они из разных стран, так что и этого не произойдёт.
Иван М: По опыту знаю, что если суммы небольшие, а в компании начинается такая фигня, когда крайних нет, общение с директором противопоказано. Если бы у него был хоть какой-то договор, то тогда без вопросов. Сейчас надо всё решать через менеджера: показывать ему работу, требовать зарплаты и отдавать код. Мирно и без истерик. Сказать: "я тоже кушать хочу" или "мне семью кормить, за интернет платить, я не могу с вами работать. Давайте, посмотрим что сделано, передадим вам проект и до свидания".
Иван М: Так я и не говорю, что он должен кидать. Вы читайте: я настаиваю на сдаче того кода, что он сделал. Уйти из проекта и кинуть заказчика - разные вещи. Читайте условия: з/п за месяц, а не за проект. Т.е. человек сдаёт N работ и месяц считается закрытым. Дальше он может либо продолжить его делать, либо отказаться. Что тут непонятного?
Иван М: Вот и я про то же. В такой ситуации заказчик может подпортить ему репутацию, но это лучше, чем батрачить на него за копейки и не видеть конца проекту.
Почему и говорю, что хоть отдельный обработчик форм напрашивается, он слишком боком подходит к ТЗ и его бы слить с одной из сущностей. Чисто чтобы не плодить их. А вот основной функционал надо тщательно разбить по функциям и в отдельные классы. И чтобы функции были не более 12 строк. Например, видишь, что у тебя цикл перебора айдишников занимает место, делаешь приватную или защищённую функцию в классе под это дело. Получается, что паблик метод сэйв будет по очереди дёргать три-четыре метода, и это лучше, чем всё будет в нём одном.
PhP_Raz: А это уже Django-style MVT. Хотя, если обосновывать такой подход у препода, я бы сказал, что это позволит в будущем разделить Frontend и Backend разработку. Хотя, аргументация слабая: на шаблоне проще сэкономить время и запихать его прямо в php файл.
plnkr.co/edit/5BYQ1frKklCpvMDzilRa?p=preview