recherche

Maison  >  Questions et réponses  >  le corps du texte

yii2 - (couche PHP uniquement) Comment YAF est-il compatible avec les règles de routage d'URL [l'action de bosse devient un signe moins] de YII

Description de l'arrière-plan :
1. Dans yii, il y a les contrôleurs suivants

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

2. Dans yaf, il y a les contrôleurs suivants

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

Description du problème :
3. Demandez comment yaf est compatible avec yii et accédez à www.XXX.com/pay/ios-callback, puis la page affichera bonjour yaf

Remarque : Actuellement, la solution à laquelle je peux penser est de réécrire l'URL dans la couche Nginx, mais je pense que ce n'est pas la meilleure solution, je ne discuterai donc que de l'implémentation de la couche PHP

世界只因有你世界只因有你2775 Il y a quelques jours707

répondre à tous(1)je répondrai

  • 習慣沉默

    習慣沉默2017-05-19 10:10:38

    Après avoir étudié le code source de YII, j'ai enfin trouvé les règles de réécriture du routage. La méthode est la suivante

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

    La méthode d'implémentation consiste à introduire cette règle dans le routerShutdown de yaf, afin que les règles de routage puissent être réécrites pour atteindre l'objectif d'afficher hello yaf sur la page lors de l'accès à www.XXX.com/pay/ios-callback

    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)));
    }

    répondre
    0
  • Annulerrépondre