public function removeDirectoryAndContents() { if ($this->fileExists()) { // Remove o diretório e seu conteúdo (outros arquivos/diretórios) através de lógica recursiva $files = array_diff(scandir($this->filename), array('.', '..')); foreach ($files as $file) { is_dir("{$this->filename}/{$file}") ? File::removeDirectoryAndContents("{$this->filename}/{$file}") : unlink("{$this->filename}/{$file}"); } return rmdir($this->filename); } }
public function delete($id) { $this->mapping->criterias['id'] = new stdclass(); $this->mapping->criterias['id']->field = 'albumID'; $this->mapping->criterias['id']->operator = '='; $this->mapping->criterias['id']->value = $id; try { $this->dbh->beginTransaction(); parent::delete($id); $this->dbh->commit(); // Elimina diretório e todo o conteúdo do álbum de fotos $file = new File(Config::read('path.photos') . '/' . $id); $file->removeDirectoryAndContents(); } catch (PDOException $exception) { $this->dbh->rollback(); $this->modelException(Text::read('message.model.error.delete'), $exception); } }