CakePHP: лучшая практика для медиа-загрузки всего приложения - PullRequest
1 голос
/ 22 июня 2011

Я пытаюсь сделать загрузку мультимедиа для всего приложения, которая должна быть доступна для любого контроллера / модели.
Я подумал о таблице media, которая содержит записи всех загруженных файлов, моя схема выглядит следующим образом:

id
controller      //to keep the reference from which controller the file was uploaded
foreign_key     //since files should be uploaded to specific records, I need this id
filename
extension
fullname
size
created
modified

Я не уверен, что будет лучшим подходом в этом. Я думал о компонентах, плагинах и поведении, но все еще не уверен.

Мое приложение имеет много разных контроллеров с разными записями.
Например, он управляет проектами и теперь должен иметь возможность прикреплять PDF-файлы к конкретным проектам из маски редактирования проекта.
Поскольку эта функция нужна другим контроллерам, я тоже хочу написать ее для всего приложения.

Я почти уверен, что мне нужен помощник для вызова функции загрузки из масок.
Может что-то вроде: echo $this->Media->uploadMask();, который предоставляет мне готовую маску загрузки для контроллера и идентификатора, который я сейчас редактирую.

Но я не знаю, по какому маршруту я должен позвонить для загрузки. Что-то вроде /media/upload было бы очень хорошо, но я не уверен, правильно ли это вписывается в MVC-подход.
Было бы лучше позвонить с моих конкретных контроллеров? Или лучше AJAX-загрузка на обычный контроллер / модель?

1 Ответ

4 голосов
/ 22 июня 2011

То, что вы описываете, - это Поведение , которое в основном является объектом методов, которые могут применяться к любой модели.Для контроллеров есть также Компоненты .

Уже есть пара установленных способов загрузки для CakePHP, которые вы должны проверить: Загрузка Meio , которая хороша для базовой обработки изображенийа также CakePHP Media Plugin , который является более продвинутым и недавно обновленным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...