Как обслуживать MVC-вид с путями к изображениям из каталога?

StackOverflow https://stackoverflow.com/questions/1221381

Вопрос

Я в некотором роде новичок во всей концепции MVC , так как я только недавно начал разработку веб-сайта с использованием фреймворка CakePHP . Поэтому я обращаюсь к вам с просьбой о том, как добиться следующего наилучшим образом.

Я хочу иметь возможность разместить несколько изображений в каталоге, который затем сканируется на наличие всех имен файлов в нем. Эти имена файлов должны впоследствии передаваться в произвольное представление, которое затем перебирает все имена файлов, делая из них теги img .

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

Я уже попробовал следующие два подхода. Тем не менее, по какой-то причине ни один из них не показался мне лучшим способом .

<Ол>
  • Создайте модель с помощью $ useTable = false .
  • Создайте обычный класс и импортируйте его как поставщика.
  • Что является лучшим способом для достижения того, что я описал выше?

    Это было полезно?

    Решение

    Я думаю, что ваша оригинальная идея лучше, используйте Модель, чтобы пройти / прочитать / написать каталог. Думайте о структуре Файла как о вашем источнике данных. Вы можете передать dirname в модель с данными $ this-> gt; и затем позволить ей использовать класс файлов чтобы получить то, что вам нужно. Это сделает его переносимым между контроллерами (с помощью loadModel () )

    В дальнейшем, если вы перемещаете пути к изображениям в БД, вам нужно только переписать модель, чтобы учесть это.

    Другие советы

    Ранее я сделал следующее: создайте, например, класс ImageManager и передайте его как IImageManager в конструктор вашего, например, ImageController, вместо передачи в хранилище. Затем ImageManager может выполнить всю работу, которую вы упомянули.

    РЕДАКТИРОВАТЬ: я сделал это в .net mvc, и у меня нет опыта CakePHP, но я думаю, что есть место, где вы можете зарегистрировать конкретную реализацию IImageManager как ImageManager, чтобы инфраструктура знала, что передать конструктору контроллера

    Я бы создал помощник для этой цели.

    Редактировать. Для просмотра файловой системы используйте Папку Класс изнутри вашего помощника.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top