關於 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

輸出:我是登錄接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM