/** * Define os parâmetros do mecanismo MVC * @return object Retorna o objeto com as propriedades definidas */ public function initialize($baseURI, $controller_directory) { if (!empty($baseURI) && !empty($controller_directory)) { $explode = array_values(array_filter(explode('/', $_SERVER['REQUEST_URI']))); if (isset($explode[0]) && $explode[0] == str_replace('/', '', $baseURI)) { unset($explode[0]); $explode = array_values($explode); } if (count($explode) == 0) { return $this; } if (file_exists($controller_directory . $explode[0])) { $this->subfolder = $explode[0] . DS; if (isset($explode[1])) { $this->controller = Tools::filteredName($explode[1]) . 'Controller'; } if (isset($explode[2])) { $this->action = lcfirst(Tools::filteredName($explode[2])) . 'Action'; unset($explode[2]); } } elseif (count($explode) == 1) { $this->controller = Tools::filteredName($explode[0]) . 'Controller'; return $this; } else { $this->controller = Tools::filteredName($explode[0]) . 'Controller'; $this->action = lcfirst(Tools::filteredName($explode[1])) . 'Action'; } unset($explode[0], $explode[1]); $this->params = array_values($explode); } }
public function loadModules($obj) { foreach ($this->modules as $module) { $module_class = Tools::filteredName(ucwords($module)); $object = 'HXPHP\\System\\Configs\\Modules\\' . $module_class; if (!class_exists($object)) { throw new \Exception("O modulo <'{$object}'> informado nao existe.", 1); } else { $obj->{$module} = new $object(); } } return $obj; }
public function add($environment = null) { if ($environment == null) { $environment = $this->defaultEnvironment; } $name = strtolower(Tools::filteredName($environment)); $object = 'HXPHP\\System\\Configs\\Environments\\Environment' . ucfirst(Tools::filteredName($environment)); if (!class_exists($object)) { throw new \Exception('O ambiente informado nao esta definido nas configuracoes do sistema.'); } else { $this->{$name} = new $object(); return $this->{$name}; } }
/** * Define os parâmetros do mecanismo MVC * @return object Retorna o objeto com as propriedades definidas */ public function initialize($baseURI) { if (!empty($baseURI)) { $explode = array_values(array_filter(explode('/', $_SERVER['REQUEST_URI']))); if (isset($explode[0]) && $explode[0] == str_replace('/', '', $baseURI)) { unset($explode[0]); $explode = array_values($explode); } if (count($explode) == 0) { $this->controller = 'IndexController'; $this->action = 'indexAction'; return $this; } if (count($explode) == 1) { $this->controller = Tools::filteredName($explode[0]) . 'Controller'; $this->action = 'indexAction'; return $this; } $this->controller = Tools::filteredName($explode[0]) . 'Controller'; $this->action = lcfirst(Tools::filteredName($explode[1])) . 'Action'; unset($explode[0], $explode[1]); $this->params = array_values($explode); } }
/** * Carrega serviços, módulos e helpers * @param string $object Nome da classe * @param string|array $params Parâmetros do método construtor * @return object Objeto injetado */ public function load() { $total_args = func_num_args(); if (!$total_args) { throw new \Exception("Nenhum objeto foi definido para ser carregado.", 1); } /** * Retorna todos os argumentos e define o primeiro como * o objeto que será injetado * @var array */ $args = func_get_args(); $object = $args[0]; /** * Define os demais argumentos passados como * parâmetros para o construtor do objeto injetado */ unset($args[0]); $params = !$args ? [] : array_values($args); /** * Tratamento que adiciona a pasta do módulo */ $explode = explode('\\', $object); $object = $object . '\\' . end($explode); $object = 'HXPHP\\System\\' . $object; if (class_exists($object)) { $name = end($explode); $name = strtolower(Tools::filteredName($name)); if ($params) { $ref = new \ReflectionClass($object); $this->view->{$name} = $ref->newInstanceArgs($params); } else { $this->view->{$name} = new $object(); } return $this->view->{$name}; } }