storage = $storage; $this->path = $path; $this->directoryPath = pathinfo($path, PATHINFO_DIRNAME); } abstract public function execute(); public function setPath($path) { $this->path = $path; $this->directoryPath = pathinfo($path, PATHINFO_DIRNAME); } protected function deleteOriginalDocument() { $this->storage->delete($this->path); } }