Заливка файла на сервер в моделе или в контроллере?
Здравствуйте! Изучаю MVC архитектуру, мучает вопрос. Через форму передаются некоторые поля и массив файлов. Где обработать эти данные и сохранить на сервер? Я придумал несколько варинатов:
- В контроллере сразу же сохранить файлы и передать идентификаторы в модель.
- В Phalcon\Model есть метод beforeCreate и в нём бы очень хорошо было поставить сохранение файлов, это было бы даже универсальнее, чем в контроллере.
- Создать Events Manager в index.php, зарегистрировать как сервис в Dependency injection. В сервисе проверять: если событие beforeCreate и в запросе есть файлы, то залить их, и забить в соответствующий столбик идентификаторы файлов.
Но все методы мне не нравятся и кажутся дурными. В первом - потому что при добавлении в другом контроллере опять придётся писать заливку файлов. Даже если сделать это функцией - всёравно не правильно. Далее, в моделе - хороший вариант, но вроде бы в моделе можно только с базой работать по стандартам да и если появится ещё модель, тоже с принятием файла - придётся туда тоже писать код тот же. И последний метод - хорош, но как бы мне в него передавать: таблицу в которую записываются файлы, папку. Чтобы из разных моделей были разные настройки.
Подскажите, пожалуйста, как сделать максимально универсальным реализацию данной вещи и самое главное, чтобы было по стандартам MVC.