2012-11-02 12 views
8

세부Joomla에서는 언제 setUserState를 사용해야합니까?

내가 저장하고 줌라 세션에서 데이터를 검색하는 사용자 상태 변수를 사용할 수 있습니다

.

예는

$app =& JFactory::getApplication(); 
$app->setUserState('myvar', $myvarvalue); 

변수를 설정하지만 나는 또한 저장하고 JFactory /하는 getSession를 사용하여 세션 변수를 검색 할 수 있습니다.

실례

$session =& JFactory::getSession(); 
$session->set('myvar', $myvarvalue); 

질문

두 방법의 차이는 무엇 변수를 설정? 언제 다른 것을 사용해야합니까?

답변

8

간단히 말해서 : 큰 차이가 아니므로 문맥에서 옳은 느낌을 사용할 수 있습니다. JApplication/setUserState을 고집 할 것입니다. 왜냐하면 코드가 더 자명하다고 생각하기 때문입니다.

실제 차이는 :

두 가지 방법은 세션에 지정된 상태를 저장합니다. JApplication/setUserState은 사실 내부적으로 JSession/set을 사용하여 상태를 저장합니다.

JApplication/setUserStateJRegistry에 모든 키 값 쌍을 저장한다는 점이 다릅니다. 따라서 다음과 같습니다.

$session = JFactory::getSession(); 
$registry = $session->get('registry'); 
$registry->set('myvar', $myvarvalue); 

JRegistry을 사용하는 이유는 무엇입니까? 기능적으로 제공되는 기능은 대부분 JRegistryFormat입니다. 당신은 모두 구문 분석에 사용하고 상태를 포맷 할 수 있습니다 : 자세한 답변

$app = JFactory::getApplication(); 
$app->setUserState('myvar', $myvarvalue); 
// $_SESSION['default']['registry']->set('myvar', $myvarvalue) 
+0

감사합니다 : 그것은 또한 JApplication/setUserState 당신의 국가를 사용하여 "기본"네임 스페이스에 끝날 것이라고 지적 가치가

$session = JFactory::getSession(); $registry = $session->get('registry'); $json = $registry->toString('JSON'); $xml = $registry->toString('XML'); 

을 ! 나는 차이점/유사점을 지금 이해하고 있다고 느낍니다. :) – TryHarder

관련 문제