Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRouteObtener el nombre de la ruta efectiva

Descripción

public Yaf_Router::getCurrentRoute ( void ) : string

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