Exemplo n.º 1
0
 public function testParseUrl()
 {
     Router::resource('companies');
     Router::resource('companies.people');
     Router::connect('/:controller/:action/:id', array());
     Router::connect('/:controller/:action', array());
     Router::connect('/:controller', array('action' => 'index'));
     $_SERVER['REQUEST_METHOD'] = 'GET';
     $result = Router::parseUrl('/companies', Request::fromGlobals());
     $expected = array('controller' => 'companies', 'controller_class' => 'CompaniesController', 'action' => 'index', 'action_method' => 'indexAction', 'args' => array(), 'namespace' => false, 'extension' => 'html');
     $this->assertEquals($expected, $result);
     $_SERVER['REQUEST_METHOD'] = 'POST';
     $result = Router::parseUrl('/companies', Request::fromGlobals());
     $expected = array('controller' => 'companies', 'controller_class' => 'CompaniesController', 'action' => 'add', 'action_method' => 'addAction', 'args' => array(), 'namespace' => false, 'extension' => 'html');
     $this->assertEquals($expected, $result);
     $_SERVER['REQUEST_METHOD'] = 'PUT';
     $result = Router::parseUrl('/companies/1');
     $expected = array('controller' => 'companies', 'controller_class' => 'CompaniesController', 'action' => 'edit', 'action_method' => 'editAction', 'args' => array('id' => '1'), 'namespace' => false, 'extension' => 'html');
     $this->assertEquals($expected, $result);
     $_SERVER['REQUEST_METHOD'] = 'DELETE';
     $result = Router::parseUrl('/companies/1', Request::fromGlobals());
     $expected = array('controller' => 'companies', 'controller_class' => 'CompaniesController', 'action' => 'delete', 'action_method' => 'deleteAction', 'args' => array('id' => '1'), 'namespace' => false, 'extension' => 'html');
     $this->assertEquals($expected, $result);
     $_SERVER['REQUEST_METHOD'] = 'GET';
     $result = Router::parseUrl('/companies/1.json', Request::fromGlobals());
     $expected = array('controller' => 'companies', 'controller_class' => 'CompaniesController', 'action' => 'view', 'action_method' => 'viewAction', 'args' => array('id' => '1'), 'namespace' => false, 'extension' => 'json');
     $this->assertEquals($expected, $result);
     $_SERVER['REQUEST_METHOD'] = 'GET';
     $result = Router::parseUrl('/companies/1/people/25.xml', Request::fromGlobals());
     $expected = array('controller' => 'people', 'controller_class' => 'PeopleController', 'action' => 'view', 'action_method' => 'viewAction', 'args' => array('company_id' => '1', 'id' => '25'), 'namespace' => false, 'extension' => 'xml');
     $this->assertEquals($expected, $result);
     $_SERVER['REQUEST_METHOD'] = 'GET';
     $result = Router::parseUrl('/users/edit/23', Request::fromGlobals());
     $expected = array('controller' => 'users', 'controller_class' => 'UsersController', 'action' => 'edit', 'action_method' => 'editAction', 'args' => array('id' => '23'), 'namespace' => false, 'extension' => 'html');
     $this->assertEquals($expected, $result);
 }
Exemplo n.º 2
0
<?php
/**
 * RoxPHP
 *
 * Copyright (C) 2008 - 2011 Ramon Torres
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright Copyright (c) 2008 - 2011 Ramon Torres
 * @package App
 * @license The MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

use \rox\Router;

// Connect the homepage
Router::connectRoot(array('controller' => 'pages', 'action' => 'home'));

// Custom routes

// Default routes
Router::connect('/:controller', array('action' => 'index'), array('via' => 'GET'));
Router::connect('/:controller/new', array('action' => 'add'), array('via' => 'GET'));
Router::connect('/:controller', array('action' => 'add'), array('via' => 'POST'));
Router::connect('/:controller/:id', array('action' => 'view'), array('via' => 'GET'));
Router::connect('/:controller/:id/edit', array('action' => 'edit'), array('via' => 'GET'));
Router::connect('/:controller/:id', array('action' => 'edit'), array('via' => 'PUT'));
Router::connect('/:controller/:id', array('action' => 'delete'), array('via' => 'DELETE'));