
Yaf_Request_Abstract::setRouted() 메소드는 라우팅 정보를 _routed 변수에 저장한다. 하지만 이 변수의 정보는 메소드 호출의 순서에 따라 초기화가 될 수 있다.
Yaf_Request_Abstract::getRouted() 메소드는 _routed 변수를 사용하여 라우팅 정보를 가져온다. 따라서 Yaf_Request_Abstract::setRouted() 메소드를 호출한 후에 Yaf_Request_Abstract::getRouted() 메소드를 호출하기 전에 다른 메소드를 호출하면, _routed 변수의 정보가 초기화되어 라우팅 정보가 가져와지지 않는다.
이 문제를 해결하기 위해, Yaf_Request_Abstract::setRouted() 메소드를 호출한 후에 Yaf_Request_Abstract::getRouted() 메소드를 호출하기 전에 다른 메소드를 호출하지 않도록 해야 한다.
또한, Yaf_Request_Abstract::setRouted() 메소드 호출 후에 Yaf_Request_Abstract::getRouted() 메소드를 호출하기 전에 다른 메소드를 호출한 경우, Yaf_Request_Abstract::_routed 변수를 초기화하는 코드를 추가하여 문제를 해결할 수 있다.
예를 들어, 다음과 같은 코드를 추가할 수 있다.
#hostingforum.kr
php
public function setRouted($route) {
$this->_routed = $route;
// 다른 메소드를 호출한 경우 초기화 코드 추가
if ($this->getOtherMethodCalled()) {
$this->_routed = null;
}
}
또한, Yaf_Request_Abstract::setRouted() 메소드 호출 후에 Yaf_Request_Abstract::getRouted() 메소드를 호출하기 전에 다른 메소드를 호출한 경우, _routed 변수의 초기화 코드를 추가하여 문제를 해결할 수 있다.
#hostingforum.kr
php
public function getRouted() {
// 다른 메소드를 호출한 경우 초기화 코드 추가
if ($this->getOtherMethodCalled()) {
$this->_routed = null;
}
return $this->_routed;
}
이러한 방법으로 Yaf_Request_Abstract::setRouted() 메소드 호출 후에 Yaf_Request_Abstract::getRouted() 메소드를 호출하기 전에 다른 메소드를 호출한 경우, 라우팅 정보를 가져올 수 있다.
2025-05-02 23:07