質問

CakePHP フレームワークを使用してWebサイトの開発を始めたばかりであるため、 MVC の概念全体に慣れていません。したがって、ベストプラクティスの方法で次のことを達成する方法をお尋ねします。

ディレクトリに複数の画像を配置できるようにしたいのですが、ディレクトリ内のすべてのファイル名がスキャンされます。これらのファイル名は、その後任意のビューに渡され、すべてのファイル名をループして img タグを作成します。

これを一般的な方法で実行できれば、同じタスクで別のディレクトリ名を使用してコードを再利用できるようになります。

次の2つのアプローチをすでに試しました。それにもかかわらず、これらのどれも、何らかの理由でそれを行うための最良の方法のように感じました。

  1. $ useTable = false でモデルを作成します。
  2. 通常のクラスを作成し、ベンダーとしてインポートします。

上記の内容を達成するための最良の方法 ですか?

役に立ちましたか?

解決

元のアイデアの方が良いと思います。Modelを使用してディレクトリを走査/読み取り/書き込みします。ファイル構造をデータソースと考えてください。 $ this-> dataを使用してモデルにディレクトリ名を渡し、ファイルクラス必要なものを取得します。これにより、コントローラー間で移植可能になります( loadModel()を使用)

後で、画像パスをDBに移動する場合、モデルを書き直してそれを考慮するだけです。

他のヒント

以前に次のことを行いました。例えば、ImageManagerクラスを作成し、リポジトリを渡す代わりに、ImageControllerのコンストラクタにIImageManagerとして渡します。 ImageManagerは、あなたが言及したすべての作業を実行できます。

編集:.net mvcでそれを行い、CakePHPの経験はありませんが、IImageManagerの具体的な実装をImageManagerとして登録できる場所があるので、フレームワークはコントローラのコンストラクタに何を渡すかを知っています

この目的のためにヘルパーを作成します。

編集:ファイルシステムをトロールするには、 Folder ヘルパー内からのクラス。

scroll top