lithium\net\http\Router::modifiers PHP Method

modifiers() public static method

use lithium\util\Inflector; Router::modifiers(array( 'controller' => function($value) { return Inflector::camelize($value); }, 'action' => function($value) { return Inflector::camelize($value) . 'Action'; } )); _Note_: Because modifiers are copied to Route objects on an individual basis, make sure you append your custom modifiers _before_ connecting new routes.
public static modifiers ( array $modifiers = [] ) : array
$modifiers array An array of named formatter closures to append to (or overwrite) the existing list.
return array Returns the formatters array.
    public static function modifiers(array $modifiers = array())
    {
        if (!static::$_modifiers) {
            static::$_modifiers = array('args' => function ($value) {
                return explode('/', $value);
            }, 'controller' => function ($value) {
                return Inflector::camelize($value);
            });
        }
        if ($modifiers) {
            static::$_modifiers = array_filter($modifiers + static::$_modifiers);
        }
        return static::$_modifiers;
    }

Usage Example

Esempio n. 1
0
 public function testRouteModifiers()
 {
     $modifiers = Router::modifiers();
     $this->assertEqual(array('args', 'controller'), array_keys($modifiers));
     $this->assertEqual(array('foo', 'bar'), $modifiers['args']('foo/bar'));
     $this->assertIdentical('HelloWorld', $modifiers['controller']('hello_world'));
 }