/** * Build the controller * * @return string * @throws \Exception */ public function build() { if (!is_dir($this->_options['directory']) || $this->_options['force'] == true) { if (!is_dir($this->_options['directory'])) { if (!@mkdir($this->_options['directory'])) { throw new \Exception("Unable to create module directory!"); } @chmod($this->_options['directory'], 0777); } } else { throw new \Exception("Module directory already exists!"); } if (!is_dir($this->_options['directory'] . Tools::getControllersDir())) { if (!@mkdir($this->_options['directory'] . Tools::getControllersDir())) { throw new \Exception("Unable to create controller directory!"); } @chmod($this->_options['directory'] . Tools::getControllersDir(), 0777); } $controller = new Controller(array('module' => $this->_options['name'], 'name' => 'IndexController', 'namespace' => null, 'baseClass' => current(Tools::getBaseController()), 'directory' => $this->_options['directory'] . DIRECTORY_SEPARATOR . Tools::getControllersDir(), 'force' => $this->_options['force'])); $controller->build(); if (!is_dir($this->_options['directory'] . Tools::getModelsDir())) { if (!@mkdir($this->_options['directory'] . Tools::getModelsDir())) { throw new \Exception("Unable to create model directory!"); } @chmod($this->_options['directory'] . Tools::getModelsDir(), 0777); } if (!is_dir($this->_options['directory'] . Tools::getFormsDir())) { if (!@mkdir($this->_options['directory'] . Tools::getFormsDir())) { throw new \Exception("Unable to create form directory!"); } @chmod($this->_options['directory'] . Tools::getFormsDir(), 0777); } if (!is_dir($this->_options['directory'] . Tools::getViewsDir())) { if (!@mkdir($this->_options['directory'] . Tools::getViewsDir())) { throw new \Exception("Unable to create controller directory!"); } @chmod($this->_options['directory'] . Tools::getViewsDir(), 0777); } $view = new View(array('name' => 'IndexController', 'module' => $this->_options['name'], 'force' => $this->_options['force'])); $view->build(); if ($this->_options['routes']) { $this->_createRoute(); } $this->_createModule(); }