zoukankan      html  css  js  c++  java
  • 关于 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。

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

    安装

    Yaf的安装

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

    新建模块

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

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

    修改项目配置文件confapplication.ini

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

    在新模块下创建控制器

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

    新建文件applicationmodulesApicontrollersPassport.php

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

    效果

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

    输出:我是登录接口

  • 相关阅读:
    AgilePoint模型驱动BPM(业务流程管理)介绍
    WF从入门到精通(第五章):workflow跟踪 (转)
    昕友.亿达PM项目管理软件 结构草图
    C++之虚拟继承
    Using Batch Parameters
    Static 关键字 C and C++
    something about code coverage planning
    C++ 虚函数表
    C++ FAQ for me
    Drag and Drop in WPF
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/5145155.html
Copyright © 2011-2022 走看看