Esempio n. 1
0
 /**
  * @covers Router::match
  * @covers Route::getParameters
  */
 public function testParamsWithDynamicFilterMatch()
 {
     $collection = new RouteCollection();
     $route = new Route('/js/:filename.js', array('_controller' => 'PHPRouter\\Test\\SomeController::dynamicFilterUrlMatch', 'methods' => 'GET'));
     $route->setFilters(array(':filename' => '([[:alnum:]\\.]+)'), true);
     $collection->attachRoute($route);
     $router = new Router($collection);
     $this->assertEquals(array(array('filename' => 'someJsFile')), $router->match('/js/someJsFile.js')->getParameters());
     $this->assertEquals(array(array('filename' => 'someJsFile.min')), $router->match('/js/someJsFile.min.js')->getParameters());
     $this->assertEquals(array(array('filename' => 'someJsFile.min.js')), $router->match('/js/someJsFile.min.js.js')->getParameters());
 }
Esempio n. 2
0
 /**
  * Router runner
  *
  * @throws NotFoundException
  * @return bool|\PHPRouter\Route
  */
 public function run()
 {
     $routes = Config::loadFromFile($this->routePath);
     $router = Route::parseConfig($routes);
     $exec = $router->matchCurrentRequest();
     if ($exec) {
         return $exec;
     }
     throw new NotFoundException('Route does not found', NotFoundException::CODE);
 }
Esempio n. 3
0
 public function testParseConfig()
 {
     $config = Config::loadFromFile(__DIR__ . '/../../Fixtures/router.yaml');
     $router = Router::parseConfig($config);
     self::assertAttributeEquals($config['base_path'], 'basePath', $router);
 }
Esempio n. 4
0
 /**
  * Create routes by array, and return a Router object
  *
  * @param array $config provide by Config::loadFromFile()
  * @return Router
  */
 public static function parseConfig(array $config)
 {
     $collection = new RouteCollection();
     foreach ($config['routes'] as $name => $route) {
         $collection->attachRoute(new Route($route[0], array('_controller' => str_replace('.', '::', $route[1]), 'methods' => $route[2], 'name' => $name)));
     }
     $router = new Router($collection);
     if (isset($config['base_path'])) {
         $router->setBasePath($config['base_path']);
     }
     return $router;
 }
$collection->attachRoute(new Route('/admin/descuentos/setDescuento/', array('_controller' => 'usuariosController::setDescuento', 'methods' => 'POST')));
//-------acceso para administradores para obtener los descuentos------
$collection->attachRoute(new Route('/admin/descuentos/getDescuentos/', array('_controller' => 'usuariosController::getDescuentos', 'methods' => 'POST')));
//-------acceso para administradores para eliminar los descuentos------
$collection->attachRoute(new Route('/admin/descuentos/delDescuento/', array('_controller' => 'usuariosController::delDescuento', 'methods' => 'POST')));
//-------acceso para administradores para actualizar los datos de un descuento------
$collection->attachRoute(new Route('/admin/descuentos/updateDescuento/', array('_controller' => 'usuariosController::updateDescuento', 'methods' => 'POST')));
//-------acceso para imprimir tabla de eventos------
$collection->attachRoute(new Route('/admin/imprimirTablaAdmin/', array('_controller' => 'usuariosController::imprimirTablaAdmin', 'methods' => 'GET')));
//-------Modificacion de datos updatePago------
$collection->attachRoute(new Route('/admin/updatePago/', array('_controller' => 'usuariosController::updatePago', 'methods' => 'POST')));
//-------Modificacion de datos updateMaterial------
$collection->attachRoute(new Route('/admin/updateMaterial/', array('_controller' => 'usuariosController::updateMaterial', 'methods' => 'POST')));
//-------imprimir datos a excel------
$collection->attachRoute(new Route('/admin/reporteExcel/', array('_controller' => 'cReportes::Excel', 'methods' => 'POST')));
//-------obtencion de relacion participantes eventos ------
$collection->attachRoute(new Route('/admin/getRelEventosParticipantes/', array('_controller' => 'usuariosController::getRelEventosParticipantes', 'methods' => 'POST')));
//-------obtencion de relacion participantes en grupo de un evento ------
$collection->attachRoute(new Route('/admin/getRelEventosParticipantesGrupos/', array('_controller' => 'usuariosController::getRelEventosParticipantesGrupos', 'methods' => 'POST')));
$collection->attachRoute(new Route('/admin/fichas/', array('_controller' => 'usuariosController::getAdjuntos', 'methods' => 'POST')));
$collection->attachRoute(new Route('/admin/adjunto/', array('_controller' => 'usuariosController::delAdjuntos', 'methods' => 'POST')));
$collection->attachRoute(new Route('/admin/delComentarios/', array('_controller' => 'usuariosController::delComentarioAdmin', 'methods' => 'POST')));
$collection->attachRoute(new Route('/admin/reporteAccesos/', array('_controller' => 'usuariosController::reporteAccesos', 'methods' => 'GET')));
$collection->attachRoute(new Route('/admin/reporteAccesos/', array('_controller' => 'usuariosController::getReporteAccesos', 'methods' => 'POST')));
$router = new Router($collection);
$router->setBasePath('/');
$route = $router->matchCurrentRequest();
if (!$route) {
    $page = new someController();
    $page->page404();
}
Esempio n. 6
0
<?php

namespace RoxFramework;

use PHPRouter\Router;
use PHPRouter\Route;
use PHPRouter\RouteCollection;
$router = new Router($routing, $routing);
$route = $router->matchCurrentRequest();
if (!$route) {
    header("HTTP/1.1 404 Route Not Found");
    exit;
}
$controller = (array) $route->getTarget();
if (!$controller) {
    header("HTTP/1.1 404 Target Not Found");
    exit;
}
$controllerFile = APP_DIR . '/controller/' . $controller[0] . "/{$controller[1]}.php";
if (!file_exists($controllerFile)) {
    header("HTTP/1.1 404 Controller Not Found");
    exit;
}
include_once $controllerFile;
$controllerClass = $controller[0] . '\\Controllers\\' . $controller[1];
$controllerAction = array(new $controllerClass($controller[0]), $controller[2]);
if (!is_callable($controllerAction, true)) {
    header("HTTP/1.1 404 Action Not Found");
    exit;
}
$parameters = $route->getParameters();
Esempio n. 7
0
 /**
  * @test
  */
 public function shouldCallRouteWithParam()
 {
     $request = $this->getRequestMock('GET', '/contact/test_123');
     $router = new Router($request, $this->collection);
     $this->assertEquals('test_123', $router->run());
     $request = $this->getRequestMock('GET', '/contact/xxx:xxx');
     $router = new Router($request, $this->collection);
     $this->assertEquals('regex_xxx:xxx', $router->run());
 }