protected function execute(InputInterface $input, OutputInterface $output) { $rotas = Router::getInstance()->getCollection()->all(); $data = []; error_reporting(0); foreach ($rotas as $key => $route) { $watcher = isset($route->getDefaults()['watcher']) ? $route->getDefaults()['watcher'] : ''; $methods = $route->getMethods(); $methods = count($methods) > 0 ? implode(', ', $methods) : 'ANY'; $data[] = [$route->getPath(), $methods, $watcher, $route->getDefaults()['path']]; } $table = new Table($output); $table->setHeaders(['Routes', 'Methods', 'Watchers', 'Controllers']); $table->setRows($data); $output->writeln('Anna: estas sao as rotas registradas ate o momento:'); $table->render(); }
/** * Adiciona algumas variáveis padrão na lista de parametros da view. */ private function addDefaultParams() { $router = Router::getInstance(); $parameters = $router->match(); if (is_array($parameters)) { $paths = explode('::', $parameters['path']); $this->addParam('_controller', $paths[0]); $this->addParam('_method', $paths[1]); $this->addParam('_route', $parameters['_route']); } }
<?php use Anna\Routers\Router; /* |-------------------------------------------------------------------------- | Routes |-------------------------------------------------------------------------- | | Arquivo responsável por configurar as rotas do sistema | */ $router = Router::getInstance(); $router->add('/', 'HomeController::index');
/** * Efetua a busca da rota compatível com a url recebida e préprocessa o resultado para utilização * posterior na classe. * * @return mixed */ private function doRoute() { $router = Router::getInstance(); $parameters = $router->match(); if ($parameters instanceof Response) { $parameters->display(); return false; } $method_params = []; foreach ($parameters as $k => $v) { if (!in_array($k, ['path', '_route', static::WATCHER])) { $method_params[$k] = $v; } } $parameters[static::METHOD_PARAMS] = $method_params; $explode = explode('::', $parameters['path']); $controller = $explode[0]; $method = isset($explode['1']) && $explode[1] != '' ? $explode[1] : 'index'; $parameters['controller'] = $controller; $parameters['method'] = $method; return $parameters; }