29 сентября 2011 г.

Absolute URL and helper url() (view/action)

Столкнулся с забавным поведением внешне идентичных view хелпера url() и одноимённого action хелпера.


Делаем в контроллере следущее:

var_dump(
        $this->view->url(array(), 'staticRegisterActivate', true),
        $this->_helper->url->url(array(), 'staticRegisterActivate', true)
);


Видим два урла:
http://dseye.local/registertoken.html
и
/registertoken.html

Почему при одинаковом коде в обоих хелперах (там по 2 строки) мы получаем разный вариант? И заодно как же поступить - в контроллере нужно брать абсолютный урл по роутеру (не хотелось бы ещё и serverUrl туда приплетать).

Есть подозрение что хелпер вида что то ещё рендерит перед тем как роутер заасемблить, но подтверждений не нарыл =(

UPD:
Докопался до причины =)) Оказалось это я сам переопределил стандартный хелпер вида для вывода абсолютных адресов
$this->view->serverUrl() . $router->assemble($urlOptions, $name, $reset, $encode)

Так что тревога отменяется =)

Комментариев нет: