Ну а теперь, собственно, по коду...
1. Работать напрямую с $_POST в контроллерах то еще извращение, появится новое поле вы в контроллер полезете во все 100500 функций? Подсказка - используйте модель для этого.
2. Обрабатывать получаемые данные от пользователя, делая их более безопасными? Не, не слышал.
3. Функция mail отключена на многих хостингах.
4. Создавать новый экземпляр почтовика, передавая ему данные и шаблон письма? Тоже не слышал.
5. const DEFAULT = 6; - волшебное число, лучше передавать его при создании экземпляра модели.
6. getAvailabilityText() просто улыбнуло)))
Как говорится, лень разворачивать проект, но я на 99% уверен, что кроме стандартного CRUD там ничего нет. А сайты это не только эти ваши новомодные MVC, RBAC, Singleton и прочая хрень. В первую очередь это решение проблем конечного потребителя. Хотя да, на кой нам это надо, мы же играем в "выучи фрейм за неделю и начни получать штуку баксов ежедневно"...
В общем, удачи вам))