关于 yaf路由

来自 http://segmentfault.com/a/1190000002599259

写的真好

需知

因为Yaf的默认Module是Index,浏览器访问http://127.0.0.1/passport/login,其实就是请求了Index模块下的Passport控制器下的loginAction方法

至于原因,如下:

默认情况下,我们的路由器是Yaf_Router, 而默认使用的路由协议是Yaf_Route_Static

默认的路由协议Yaf_Route_Static, 就是分析请求中的request_uri, 在去除掉base_uri以后, 获取到真正的负载路由信息的request_uri片段, 具体的策略是, 根据"/"对request_uri分段, 依次得到Module,Controller,Action, 在得到Module以后, 还需要根据Yaf_Application::$modules来判断Module是否是合法的Module, 如果不是, 则认为Module并没有体现在request_uri中, 而把原Module当做Controller, 原Controller当做Action。

在目录application\controllers\下定义的控制器,都属于Index模块下的。

安装

Yaf的安装

使用代码生成工具创建新Yaf项目

新建模块

在目录application\下新建目录modules。除了默认模块,其他模块都放在application\modules\下。

新建一个模块,模块名自定义。假设我的新模块叫Api吧。
创建目录application\modules\Api

修改项目配置文件conf\application.ini

; 多个模块,使用逗号分隔
application.modules = "Index,Api"

在新模块下创建控制器

在目录application\modules\Api\下创建控制器目录controllers,用于存放模块Api下的控制器文件。

新建文件application\modules\Api\controllers\Passport.php

<?php

class PassportController extends Yaf_Controller_Abstract { public function loginAction() { echo '我是登录接口'; return false; } } 

效果

浏览器访问:http://127.0.0.1/api/passport/login

输出:我是登录接口

转载于:https://www.cnblogs.com/zhangdashuai/p/5145155.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值