Yaf多模块开发

需知

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

至于缘由,以下:html

默认状况下,咱们的路由器是Yaf_Router, 而默认使用的路由协议是Yaf_Route_Staticapi

默认的路由协议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模块下的。app

安装

Yaf的安装工具

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

新建模块

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

新建一个模块,模块名自定义。假设个人新模块叫Api吧。
建立目录application\modules\Api接口

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

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

在新模块下建立控制器

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

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

php<?php

class PassportController extends Yaf_Controller_Abstract {


    public function loginAction() {
        echo '我是登陆接口';
        return false;
    }

}

效果

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

输出:我是登陆接口

相关文章
相关标签/搜索