Exemple #1
0
 public function testNormalize()
 {
     $param1 = ['controller' => 'Users', 'action' => 'index', 'arguments' => [0, 1]];
     $url1 = Router::normalize($param1);
     $this->assertEquals('/Users/index/0/1', $url1);
     $param2 = ['controller' => 'Users', 'action' => 'index'];
     $url2 = Router::normalize($param2);
     $this->assertEquals('/Users/index/', $url2);
 }
Exemple #2
0
    public function testDispatch()
    {
        $request = new RequestAggregate();
        $request->setRequest(new Param(''));
        Router::add('/', ['controller' => 'Pages', 'action' => 'index', 'arguments' => [1]]);
        $dispatcher = new Dispatcher($request);
        $expect = '<div><p>1</p>
</div>
';
        $this->expectOutputString($expect);
        $dispatcher->dispatch($request);
    }
Exemple #3
0
 /**
 * リクエストデータから適切なコントローラを生成し、適切なメソッドを実行する.
 *
 * @param \TRW\Request\RequestAggreagete
 * @return mixid 結果を出力する
 */
 public function dispatch($request)
 {
     if (empty($request->getParam('controller'))) {
         $defaultParam = Router::parse($request);
         $request->setRequest($defaultParam);
     }
     if (Router::has($request->getParam('url'))) {
         $mapedParam = Router::parse($request);
         $request->setRequest($mapedParam);
     }
     $controllerInstance = $this->getController($request);
     $this->invoke($controllerInstance, $request);
     echo $this->render($controllerInstance, $request);
 }
<?php

use TRW\Core\Configure;
use TRW\Router\Router;
use TRW\ActiveRecord\BaseRecord;
use TRW\ActiveRecord\Database\Driver\MySql;
use TRW\Exception\ErrorHandler;
//ini_set('display_errors',1);
Configure::load(dirname(__FILE__) . '/config.php');
set_exception_handler('TRW\\Exception\\ErrorHandler::handleException');
BaseRecord::setConnection(new MySql(Configure::read('Database', 'MySql')));
Router::add('/', ['controller' => 'Pages', 'action' => 'index']);
Exemple #5
0
 /**
 * リダイレクトを行う.
 *
 * @param array $param リダイレクト先の情報
 * 次の様に定義する
 * $param = 
 *   [
 *     'controller' => 'Users', 
 *     'action' => 'view',
 *     'arguments' => [
 *       1,'foo'
 *     ]
 *   ];
 *
 */
 public function redirect($param)
 {
     $url = Router::normalize($param);
     header('Location:' . $url);
     exit;
 }
Exemple #6
0
<?php

require '../../vendor/autoload.php';
use TRW\Core\Configure;
use TRW\Router\Router;
Configure::load(dirname(__FILE__) . '/config.php');
Router::add('/', ['controller' => 'Pages', 'action' => 'index', 'arguments' => [1]]);