1

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

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

これを一般的な方法で実行できれば、同じタスクで異なるディレクトリ名を使用してコードを再利用できると便利です。

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

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

上で説明したことを達成するための最良の方法は何ですか?

4

3 に答える 3

1

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

後でイメージ パスを DB に移動する場合は、それを考慮してモデルを書き直すだけで済みます。

于 2009-08-03T12:28:14.783 に答える
0

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

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

于 2009-08-03T09:33:50.113 に答える
0

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

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

于 2009-08-03T09:42:13.883 に答える