yii2 - (僅php層)YAF如何相容YII的【駝峰action變成減號】的url路由規則
世界只因有你
世界只因有你 2017-05-19 10:08:38
0
1
709

背景描述:
1.在yii中,有以下Controller

class PayController extends Controller
{
    public function actionIosCallback()
    {
        echo 'hello yii';
    }
}
访问www.XXX.com/pay/ios-callback,则页面显示hello yii

2.在yaf中,有以下Controller

class PayController extends Yaf_Controller_Abstract{
    public function actionIosCallback()
    {
        echo 'hello yaf';
    }
}
访问www.XXX.com/pay/iosCallback,则页面显示hello yaf

問題描述:
3.問yaf如何相容yii,實作存取www.XXX.com/pay/ios-callback,則頁面顯示hello yaf

註:目前個人能想到的方案為在Nginx層改寫url可以實現,但覺得不是最好方案,故僅討論php層實現

世界只因有你
世界只因有你

全部回覆(1)
習慣沉默

經過YII源碼的研究,終於找到了它改寫路由的規則了,方式如下

str_replace(' ', '', ucwords(str_replace('-', ' ', $action)))

實作方法為將此規則引入yaf的routerShutdown,即可改寫路由規則,達到訪問www.XXX.com/pay/ios-callback,則頁面顯示hello yaf的目的

public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
$request->controller = str_replace(' ', '', ucwords(str_replace('-', ' ', $request->controller)));
$request->action = str_replace(' ', '', ucwords(str_replace('-', ' ', $request->action)));
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板