질문/조언질답게시판
Extra Form
PHP PHP 7.2
CMS Rhymix 1.x

$_SESSION['__name__'] = 'value';

 

이런식으로 값을 가진 세션의 값을 디버그로 확인할 수 없는건가요?

{@ debugPrint($_SESSION['__name__'] )}

 

애드온에서 위와 같이 세션에 값을 넣었다면 레이아웃에서 세션 값이 제대로 나오는지 debug 할 수 있는 방법이 따로 있는건가요?

레이아웃 같은 템플릿에서 저 변수를 쓰려면 방법이 따로 있는건지도 궁금합니다.

 

그리고 _ 언더바 또는 __ 언더바 2개 이런 것을 쓰는 이유도 궁금합니다.

  • profile
    애드온에서 세션에 넣은 값을 세션 값에 따라 추가로 또 작업하지 않도록 한다음 그 값을 $GLOBALS 변수에 새로 만들어서 템플릿에서 활용하는 건가요??? 애드온에서 만들어진 결과값을 템플릿에 세션까지 활용해서 공유하고 싶은데 이게 정석적인 방법이 뭔지 알 수가 없네요....
  • profile

    debugPrint와는 상관없는 것 같고, 아마 템플릿에서 원래 $_SESSION이 안 먹힐 겁니다.

    애드온에서는 $_SESSION을 사용할 수 있습니다.

    애드온에서 템플릿으로 어떤 값을 전달하고 싶다면 Context::set을 사용하세요.

  • profile profile
    아하~ Context::set 을 사용해야 하는군요.
  • profile profile

    그럼 애드온 설정값을 다른 템플릿에 공유할때도 $GLOBALS 대신 Context::set을 써도 되나요???

     

     

    https://xetown.com/questions/1522122#comment_1522473

  • profile profile
    네, 템플릿에 전달할 때는 대문자로 이루어진 초전역변수보다 Context::set이 더 안정적입니다.
  • profile

    템플릿에서 변수 사용시 모든 변수는 $__Context->변수명 형태로 변환됩니다.
    즉 $_SESSION, $_GET, $_POST(물론 get이나 post는 그냥 변수이름 형태로 사용하면 되긴 합니다) 사용시 Context의 _SESSION이란 변수를 찾게 되니 제대로 된 값이 출력되지 않습니다.

  • profile profile
    라이믹스의 경우 $_GET, $_POST, $_SERVER 정도는 편의상 Context로 변환하지 않고 그대로 두고 있는데 무슨 이유에서인지 $_SESSION은 예외처리를 하지 않았네요.