'Please set _filesystemName', self::ERROR_BASE_DIRECTORY_IS_NULL => 'Please set _baseDirectory', self::ERROR_MODULE_NAME_IS_NULL => 'Please set _moduleName', ]; public function __construct(array $options = []) { $this->setOptions($options); return $this; } public function setOptions($options) { $unknownOptions = Qs_Options::setOptions($this, $options); $this->_options = array_merge($this->_options, $unknownOptions); return $this; } public function setBaseDirectory($baseDirectory) { $this->_baseDirectory = rtrim(str_replace('\\', DIRECTORY_SEPARATOR, $baseDirectory), DIRECTORY_SEPARATOR); return $this; } public function getBaseDirectory() { return $this->_baseDirectory; } public function setFilesystemName($filesystemName) { $this->_filesystemName = $filesystemName; return $this; } public function getFilesystemName() { return $this->_filesystemName; } public function getPath() { $path = $this->getBaseDirectory(); if ($this->getFilesystemName()) { $path .= '/' . $this->getFilesystemName(); } return $path; } public function setFullPath($fullPath) { $this->_fullPath = $fullPath; } public function getFullPath() { if (empty($this->_fullPath)) { return BASE_PATH . '/' . $this->getPath(); } return $this->_fullPath; } public function setModuleName($moduleName) { $this->_moduleName = $moduleName; } public function getModuleName() { return $this->_moduleName; } public function setParams($params) { $this->_params = $params; } public function getParams() { return $this->_params; } }