zoukankan      html  css  js  c++  java
  • Kohana路由

    路由是Kohana中的难点之一:

    前面知道:Controller::rediect("welcome/index");会访问控制器 welcome的index函数

    其实它的原理就是  :

         页面发出对控制器index函数的请求;

         找到当前使用匹配的路由;

         按路由规则找控制器,再找到对应的函数。

      疑问: 路由是一个非常重要的概念,如手册所说,你可以用路由做很多不可思议的事情。但是学到现在,个人感觉路由只是定位你控制器下面的函数,没感觉有手册说的那么夸张:

    现在深入探究下路由的使用:

    1,路由有自己的name,会不会是所有的路由根据name来区别。所有的控制器,视图或者自己新建立的文件夹项目都可以有属于自己的路由。

      不继续猜想了,请看提示2.

     2,手册中的转向404页面提示我,为什么要有多个路由,因为根据url编写的规则然后控制路由的转向才是路由的精髓所在。

       优先极的问题:

       在同一个页面中,相同的规则的路由越往上就越先调用。

       模块中的init.php比bootstarp.php先调用。

    规则学习:

      我觉得弄懂了规则就相当与弄懂了路由。

      先看分析下kohana默认路由:(有过REGEX学习的可以看下Kohana_Route类)

    1 Route::set('deflaut', '(<controller>(/<action>(/<id>)))')
    2 ->defaults(array(
    3 'controller' => 'welcome',
    4 'action'     => 'index',
    5 'id'=>'myid',
    6 ));

      注意这个规则 (<controller>(/<action>(/<id>))) 共有() ,<>,/三个符号,<>表示键值,()表示该参数可有可无,如果没有的话就会匹配到默认值 defaults数组中的值。/表示界限符。

      思考:路由只能定位到控制器么??

  • 相关阅读:
    python ping监控
    MongoDB中一些命令
    进制转换(十进制转十六进制 十六进制转十进制)
    通过ssh建立点对点的隧道,实现两个子网通信
    linux环境下的各种后台执行
    python requests请求指定IP的域名
    不需要修改/etc/hosts,curl直接解析ip请求域名
    MongoDB数据update的坑
    windows平台使用Microsoft Visual C++ Compiler for Python 2.7编译python扩展
    rabbitmq问题之HTTP access denied: user 'guest'
  • 原文地址:https://www.cnblogs.com/canbefree/p/3663761.html
Copyright © 2011-2022 走看看