/** * Delete item * * @param string $key * @return void * @throws InvalidArgumentException */ public function deleteItem($key) { if ($this->repository->isUsed($key) || $this->storage->isUsed($key)) { throw new \InvalidArgumentException(sprintf("The template object %s is in use and can not be deleted.", $key)); } try { $this->storage->deleteItem($key); $this->repository->delete($key); } catch (\InvalidArgumentException $e) { throw new \InvalidArgumentException(sprintf("Can't remove non empty directory '%s'", basename($key)), $e->getCode(), $e); } }