Шифровать / дешифровать URL Yii - PullRequest
0 голосов
/ 26 января 2012

Мне нужен способ расшифровки зашифрованных параметров запроса URL в исходный путь Yii controller/action.Пример:

С: http://www.site.com/feh923rfj932 (зашифровано)
Кому: http://www.site.com/api/view/1 (расшифровано)

Есть ли какой-нибудь обратный вызов маршрутизатора CUrlManager, который я могу использовать для реализации метода дешифрования?

1 Ответ

4 голосов
/ 27 января 2012

Да, Yii предоставляет простой способ реализовать собственную URL-логику с помощью пользовательских классов URL-адресов"обратных вызовов".

По сути, вы объявите новое правило, которое указывает на ваш новый класс декодера / кодировщика:

'rules' => array(
  '' => 'site/index', // normal URL rules
  array( // your custom URL handler
    'class' => 'application.components.CustomUrlRule',
  ),
),

Ваш класс URL будет выглядеть примерно так:

class CustomUrlRule extends CBaseUrlRule {

  public function createUrl($manager,$route,$params,$ampersand) {
    return your_encrypt_method($route);
  }

  public function parseUrl($manager,$request,$pathInfo,$rawPathInfo) {
    return your_decrypt_method($pathInfo);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...