Home  >  Article  >  Backend Development  >  Router problem in php yaf framework

Router problem in php yaf framework

WBOY
WBOYOriginal
2016-08-18 09:15:561405browse

    $router->addRoute('html', new Yaf_Route_Regex('/([a-z]+)\.html$/', array('controller' => 'Index', 'action' => 'html'), array(1 => 'page')));
    $router->addRoute('security', new Yaf_Route_Rewrite('security/:name/:rout', array('controller' => 'Security', 'action' => 'html')));
    $router->addRoute('trade', new Yaf_Route_Rewrite('trade/:name/:rout', array('controller' => 'Trade', 'action' => 'html')));

Question 1: Is the first parameter of addRoute the name of the route added later?

Question 2: Yaf_Route_Regex('/([a-z]+).html$/', array('controller' => 'Index', 'action' => 'html'), array(1 => ' page')))
What do the three parameters represent? How to understand this route (that is, how to coordinate the three parameters)?

Question 3: Yaf_Route_Rewrite('security/:name/:rout', array('controller' => 'Security', 'action' => 'html')))
What do the three parameters represent (especially The first one is strongly confused.)? How to understand this route (that is, how to coordinate the three parameters)?

Reply content:

    $router->addRoute('html', new Yaf_Route_Regex('/([a-z]+)\.html$/', array('controller' => 'Index', 'action' => 'html'), array(1 => 'page')));
    $router->addRoute('security', new Yaf_Route_Rewrite('security/:name/:rout', array('controller' => 'Security', 'action' => 'html')));
    $router->addRoute('trade', new Yaf_Route_Rewrite('trade/:name/:rout', array('controller' => 'Trade', 'action' => 'html')));

Question 1: Is the first parameter of addRoute the name of the route added later?

Question 2: Yaf_Route_Regex('/([a-z]+).html$/', array('controller' => 'Index', 'action' => 'html'), array(1 => ' page')))
What do the three parameters represent? How to understand this route (that is, how to coordinate the three parameters)?

Question 3: Yaf_Route_Rewrite('security/:name/:rout', array('controller' => 'Security', 'action' => 'html')))
What do the three parameters represent (especially The first one is strongly confused.)? How to understand this route (that is, how to coordinate the three parameters)?

I don’t use yaf, but I know a little bit about routing.

  • Parameter 1, matches the URI part in the request address. For example: http://www.baidu.com/mobile, ​​then this uri is mobile, which corresponds to the first parameter of the route you wrote.

  • Parameter 2 is an array, the value corresponding to controller is the controller, and action is the corresponding method.

  • Parameter 3, which is also an array, is the parameter brought by the request, for example, what page is the page, etc.

You can email Brother Niao, one of the core developers of the yaf framework.

Question 1

 $route  = new Yaf_Route_Rewrite(
                        "/product/list/:id/",
                        array(
                                "controller" => "product",
                                "action"         => "info",
                        )
                );

                $router->addRoute('dummy', $route);

If you add it like this, the name doesn’t matter,

If added in ini

[routes]
routes.product.type='regex'
routes.product.match='#^/([0-9]+)[\/]?$#'
routes.product.route.module='Product'
routes.product.route.controller='product'
routes.product.route.action='show'
routes.product.map.1='pid'

This requires reading the configuration and then initializing the route
In fact, its name can refer to the 5 ways of routing. simplle supervar static [default] map rewirte regex

Question 2 Question 3 I think you already know the answer

tips: If you ask Brother Bird this question, Brother Bird will give you a quotation from Brother Bird if he is in a good mood.

That’s strange. Didn’t you read the manual?

8.5. Detailed explanation of routing protocols

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn