SunshinePHP Developer Conference 2015

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRouteObtener el nombre de la ruta efectiva

Descripción

public string Yaf_Router::getCurrentRoute ( void )

Obtiene el nombre de la ruta efectiva del proceso de enrutamiento.

Nota:

Se debería llamar a este método después de que finalice el proceso de enrutamiento, ya que si se hace antes, este método devolverá siempre NULL.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Una cadena, el nombre de la ruta efectiva.

Ejemplos

Ejemplo #1 Registrar algunas rutas en el Arranque

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function 
_initConfig() {
        
$config Yaf_Application::app()->getConfig();
        
Yaf_Registry::set("config"$config);
    }

    public function 
_initRoute(Yaf_Dispatcher $dispatcher) {
        
$router $dispatcher->getRouter();
        
$rewrite_route  = new Yaf_Route_Rewrite(
            
"/product/list/:page",
            array(
                
"controller" => "product",
                
"action"     => "list",
            )
        );

        
$regex_route  = new Yaf_Route_Rewrite(
            
"#^/product/info/(\d+)",
            array(
                
"controller" => "product",
                
"action"     => "info",
            )
        );
        
        
$router->addRoute('rewrite'$rewrite_route)->addRoute('regex'$regex_route);
    }

    
/**
     * registrar un complemento
     */
    
public function __initPlugins(Yaf_Dispatcher $dispatcher) {
        
$dispatcher->registerPlugin(new DummyPlugin());
    }
?>

Ejemplo #2 Complemento Dummy.php (bajo application.directory/plugins)

<?php
class DummyPlugin extends Yaf_Plugin_Abstract {

    public function 
routerShutdown(Yaf_Request_Abstract $requestYaf_Response_Abstract $response) {
         
var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute());
    }
?>
?>

El resultado del ejemplo sería algo similar a:

/* para http://yourdomain.com/product/list/1
 * DummyPlugin imprimirá:
 */
string(7) "rewrite"

/* para http://yourdomain.com/product/info/34
 * DummyPlugin imprimirá:
 */
string(5) "regex"

/* para otros URIs solicitados
 * DummyPlugin imprimirá:
 */
string(8) "_default"

Ver también

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top