Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse des Umschreibens der Yaf-Routen im PHP-Framework

Analyse des Umschreibens der Yaf-Routen im PHP-Framework

不言
不言Original
2018-06-09 13:57:042106Durchsuche

Dieser Artikel stellt hauptsächlich die detaillierte Erklärung des Yaf-Routing-Umschreibens im PHP-Framework vor. Ich werde ihn jetzt mit Ihnen teilen und als Referenz geben.

Normalerweise wird die Site-URL für ein benutzerfreundliches URL-Format umgeschrieben. Sie können es in der Konfiguration des Webservers (Nginx) umschreiben, oder Sie können es auf der Programmseite tun

Die Folgendes verwendet das Yaf-Framework. Schreiben Sie die URL neu und organisieren Sie sie, damit sie in Zukunft einfacher angezeigt werden kann.

Die URL-Umschreibemethoden von YAF umfassen hauptsächlich Folgendes, das in Kombination verwendet werden kann

Methode 1 : in Nachdem Sie

;a rewrite route match request /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;a regex route match request /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;a simple router match /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;a map route match any request to controller
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

in der Konfigurationsdatei ausgeführt haben, fügen Sie die Initialisierungsfunktion in Bootstrap.php hinzu. Der Funktionsname kann nach Ihren Wünschen gewählt werden muss mit _ beginnen, um aufgerufen zu werden

<?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();
    /**
     * we can add some pre-defined routes in application.ini
     */
    $router->addConfig(Yaf_Registry::get("config")->routes);
    /**
     * add a Rewrite route, then for a request uri: 
     * http://***/product/list/22/foo
     * will be matched by this route, and result:
     *
     * [module] => 
     * [controller] => product
     * [action] => info
     * [method] => GET
     * [params:protected] => Array
     *   (
     *     [id] => 22
     *     [name] => foo
     *   )
     * 
     */
    $route = new Yaf_Route_Rewrite(
      "/product/list/:id/:name",
      array(
        "controller" => "product",
        "action"   => "info",
      )
    ); 
    
    $router->addRoute(&#39;dummy&#39;, $route);
  }
?>

Methode 2: Direkt im Programm im Array-Modus konfigurieren

Die Die folgenden Funktionen werden in Bootstrap.php platziert Oben finden Sie den gesamten Inhalt dieses Artikels. Ich hoffe, dass er für alle hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!

Verwandte Empfehlungen:

Über unabhängige Konfiguration und dynamische Konfigurationsmethoden im thinkPHP5.0-Framework

Das obige ist der detaillierte Inhalt vonAnalyse des Umschreibens der Yaf-Routen im PHP-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn