Frage

Ich bin ein bisschen neu in dem ganzen MVC Konzept, da ich vor kurzem gerade erst begonnen mit Entwicklung einer Website CakePHP Rahmen. Deshalb wende ich mich an Sie zu fragen, wie die folgenden in einer Best-Practice-Art und Weise zu erreichen.

Ich möchte eine Reihe von Bildern in einem Verzeichnis ablegen zu können, die dann für alle Dateinamen in ihm gescannt wird. Diese Dateinamen sollten danach auf eine beliebige Ansicht übergeben werden, die dann alle Dateinamen Schleifen durch machen img Tags von ihnen.

Es wäre schön, wenn dies in einer allgemeinen Art und Weise getan werden könnte, so dass ich den Code für gleiche Aufgabe wieder verwenden könnte, aber mit einem anderen Verzeichnisnamen.

Ich habe bereits versucht, die folgenden beiden Ansätze. Dennoch, nicht davon fühlte sich wie das besten , es zu tun, aus irgendeinem Grund.

  1. Erstellen Sie ein Modell mit $useTable=false.
  2. Erstellen Sie eine normale Klasse und als Anbieter importieren.

Was ist die beste zu erreichen, was ich oben beschrieben?

War es hilfreich?

Lösung

Ich denke, Ihre ursprüngliche Idee ist, desto besser ein, das Modell verwenden, um durchqueren / lesen / schreiben Sie das Verzeichnis. Denken Sie an die Dateistruktur als Datenquelle. Sie können mit $ this- die dirname zum Modell passieren> Daten und dann lassen Sie verwenden, um die File-Klasse abrufen, was Sie brauchen. Dies würde es tragbar über Controller machen (mit loadmodel () )

Später auf der Straße, wenn Sie Ihre Bildpfade in eine DB bewegen nur müssen Sie das Modell neu schreiben, dass zu berücksichtigen.

Andere Tipps

Ich habe folgendes getan vor: Erstellen Sie eine beispielsImageManager-Klasse und übergeben Sie es als IImageManager an den Konstruktor Ihrer beispiels ImageController stattdessen ein Repository übergeben. Der Imagemanager könnte dann die ganze Arbeit, die Sie erwähnt.

EDIT: Ich habe das in .net Mvc und haben keine Erfahrung von CakePHP, aber ich denke, es gibt einen Ort, wo man die konkrete Umsetzung von IImageManager als Image registrieren können, so der Rahmen würde wissen, was zu der Steuerung Konstruktor übergeben

Ich würde erstellen Helfer für diesen Zweck.

Edit: Und durch das Dateisystem verwenden Schleppen die Folder Klasse aus Ihrem Helfer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top