yaf路由配置规则

使用框架的默认路由来访问的时候,会遇到一些困扰,这部分无法查看源代码,只能通过猜测来分析。

如果项目有多个模块,显然使用yaf的默认的静态路由是无法满足需求的。

yaf默认的配置是着这样的:

复制代码
application.baseUri=”/”
;默认的脚本后缀名,一般可以不写
application.ext=php

;视图的后缀名,可以为html,随意。
application.view.ext=phtml
application.dispatcher.defaultModule=Index
application.dispatcher.defaultController=Index
application.dispatcher.defaultAction=index
application.modules=Index
复制代码

 

依次说明一下作用

application.baseUri=”/” 这个是说明我们的domain后面就是要解析的内容,如果我们的application是通过文件夹a访问的,baseUri就是/a 所以这个baseuri的目的就是表示出哪些部分是需要路由来处理的,哪些是真是的路径。

默认的module是 Index,

application.dispatcher.defaultModule=Index

这一句经过测试发现修改是无效的,也就是说无法通过配置来修改默认的module,

application.dispatcher.defaultController=Index

application.dispatcher.defaultAction=index

即默认的 controller和默认的action相应的都是可以指派的。

再有就是为路由添加模块,在新创建模块的时候要将添加上的模块通知给路由,这样路由才能够在request请求新模块时该如何做

 

application.modules=Index用的是这一句,如果想添加新模块 Myoo,则要在Index后面写上,Myoo(一定要注意顺序,一定是先Index,然后才是其他的模块)。

变成 application.modules=Index,Myoo

然后就在application目录下建立这样一个目录:

复制代码
├── modules
│   │   └── Myoo
│   │   │ ├── controllers
│   │   │ └── views
│   │   │  │ ├── ctrl
│   │   │  │ └── index
复制代码

 

注意:模块名字一定要和配置文件里面添加的模块名字一样,包括大小写!!

原来用的框架的路由基本上都是默认模块可以改而默认的controller和action不能改都是写死的index

这种情况的好处是每个模块都有指定的controller和action,如果要访问 myoo模块的 index控制器indexaction的话,只需要写一个module名myoo就可以了。

现在yaf则不可以。默认的mudule是写死的,而默认的controller和action是给默认的module用的,现在想访问  myoo/index/index/的话,只能写全,而不能只写myoo,只写myoo没有controller和action,路由还是不知道最终的目的地是哪里,就不会再从module中找了,myoo就被解析成默认的模块的一个controller了,然后抛出一个404错误,

这个都没有什么问题,够用了。

但是我觉得默认模块不可更改这是不是一个bug,因为如果不能改为什么要做上这个配置项呢。

posted @   网恋被骗5元  阅读(2798)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 【.NET】调用本地 Deepseek 模型
历史上的今天:
2011-07-27 给韬哥的回复
点击右上角即可分享
微信分享提示