添加 Router
parent
ebbbcf8b77
commit
e81e96512c
|
@ -0,0 +1,39 @@
|
|||
框架的路由, 其实是内置的一个中间件, 非常简洁高效。
|
||||
|
||||
先假设几个访问地址, 如下:
|
||||
|
||||
```
|
||||
http://abc.com
|
||||
http://abc.com/foo/bar
|
||||
http://abc.com/aaa/bbb/ccc/ddd
|
||||
```
|
||||
|
||||
+ 先看第1个, 光杆域名, 没有任何路径。
|
||||
> 这种情况, 路由会默认为 `/index`, 即, 此时路由会在apps目录中寻找一个叫index.js的文件, 如果能找到, 就实例化它, 如果找不到就抛出404,并提示`Controller [index] not found`。
|
||||
|
||||
> 这里继续讲解 index.js存在的情况, 实例化之后呢? 这时候, 就要看url路径中的第2段值, 这里因为是光杆路径, 所以会默认为 `/index/index`, 即 `http://abc.com` 等价于 `http://abc.com/index/index`。
|
||||
|
||||
> 于是, index.js被实例化之后, 又会被自动调用`indexAction()` 方法, 这里的方法名为什么会多出一个`Action`呢? 这是为了避免路径的值可能会命中js保留关键字, 所以特意设计的, 这也是`YAF框架`的做法, 很简单, 却很实用。
|
||||
|
||||
|
||||
+ 接下来看第2个url, 这里不再是光杆域名了。
|
||||
> 从上面第1个例子, 其实就已经可以看出来了, 这里, 将会去apps目录下寻找 foo.js文件, 并且 实例化之后, 调用`barAction()` 这个方法。
|
||||
|
||||
|
||||
+ 这里再看最后一个例子。
|
||||
> 我们发现, 这里如果按上面的规则来拆分的话, 这个路径是有4段的。我们已经知道, 第1段是用来寻找对应的应用文件名的。 第2段是决定调用哪个方法的。
|
||||
|
||||
> 那后面的第3段, 第4段, 甚至更多呢? 剩下的将作为参数, 依次传入被调用的方法中。
|
||||
|
||||
> 拿这个例子来说, 最终就是 寻找到aaa.js文件, 实例化调用,`bbbAction('ccc', 'ddd')`
|
||||
|
||||
|
||||
这样一看, 是否已经完全明白路由的工作流程了呢。
|
||||
|
||||
|
||||
----
|
||||
|
||||
上一节: [⟪默认配置⟫](https://github.com/bytedo/gmf.core/wiki/Config)
|
||||
|
||||
下一节: [⟪跨域配置⟫](https://github.com/bytedo/gmf.core/wiki/Cors)
|
||||
|
Loading…
Reference in New Issue