示例#1
0
<?php

use Arvici\Component\Router;
/**
 * Router Configuration
 */
Router::define(function (Router $router) {
    $router->get('/', '\\App\\Controller\\Welcome::index');
    $router->get('/session', '\\App\\Controller\\Welcome::session');
    $router->get('/json', '\\App\\Controller\\Welcome::json');
    $router->get('/exception', '\\App\\Controller\\Welcome::exception');
});
示例#2
0
 public function testClassMiddleware()
 {
     TestUtils::clearRoutes();
     $done = 0;
     Router::define(function (Router $router) use(&$done) {
         $router->get("/middleware/1", function () use(&$done) {
             $done++;
         });
         $router->post("/middleware/2", function () use(&$done) {
             $done++;
         });
         $router->put("/middleware/3", function () use(&$done) {
             $done++;
         });
     });
     // Middleware in class (controller)
     // Invalid, non existing class
     Router::getInstance()->after('App\\Middleware\\TestMiddlewareNotExisting::go', null, ['POST']);
     // Invalid, non existing method
     Router::getInstance()->before('App\\Middleware\\TestMiddleware::nonexisting', null, ['GET']);
     // Valid
     Router::getInstance()->before('App\\Middleware\\TestMiddleware::testThrow', null, ['PUT']);
     // Spoof
     $this->spoof('/middleware/2', 'POST');
     try {
         Router::getInstance()->run();
         $this->assertTrue(false);
     } catch (RouterException $re) {
         $this->assertTrue(true);
     }
     // Spoof
     $this->spoof('/middleware/1', 'GET');
     try {
         Router::getInstance()->run();
         $this->assertTrue(false);
     } catch (RouterException $re) {
         $this->assertTrue(true);
     }
     // Spoof
     $this->spoof('/middleware/3', 'PUT');
     try {
         Router::getInstance()->run();
         $this->assertTrue(false);
     } catch (\Exception $e) {
         $this->assertEquals("TEST", $e->getMessage());
     }
     $this->assertEquals(1, $done);
 }