コントローラを介して直接サーバーまたはネットワーク共有にアクセスする必要がありますか?Zend Frameworkを使用すると、コントローラまたはモデルを介してファイルシステムにアクセスする必要があります
私は、コントローラに、このようなコードを使用することができます:
$path = '/var/www/uploads';
$fileArray = array();
$dir = new DirectoryIterator($path);
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$fileArray[] = array('filename' => $fileinfo->getFilename(), 'extension' => $fileinfo->getExtension(), 'size' => $this->bytesToSize($fileinfo->getSize(),2), 'modified' => date('d/m/Y H:i', $fileinfo->getMTime()));
}
}
$this->view->fileList = $fileArray;
これはMVCで物事を行うには間違った方法だたびに繰り返すことを意味します。ファイルシステムをマップするモデルを作成すべきか、Zendはこれを行うことができる何かを持っていますか?
など//擬似コード機能の類似した種類で
$directory = new Zend_Directory();
$this->view->filelist = $directory->listFiles();
$directory->addFile('filepath');
$directory->deleteFile('filepath');
、アップロード、削除、名前の変更、移動、コピー、
任意のアイデア?
私はモデルを作成します。 –
あなたの例のようにこの配列をビューに渡す場合は、ビューヘルパーを作成してください。同じ配列を取り出してコントローラで使用する場合は、アクションヘルパーを作成してください。より多くの機能が必要な場合は、ここで提示してモデルを作成してください。 – RockyFord
私が探していた主な機能の1つは、ファイルを特定のファイル構造に保存する機能でした。例: 請求書が与えられたら、 /basepath/customer/invoice/file のパスでフォルダに保存する必要があります。このパスはオンザフライで作成する必要があり、ドキュメントタイプを変更する関数を作成することを想定していました、すなわちインボイスと顧客IDをパスに入力し、ファイルを保存します。 – Quanano