PHP 8.2는 주목할 만한 변화가 없는 것처럼 보였는데, 라이믹스 사용자들에게는 영향이 크지 않을까하는 하나가 눈에 띄네요.

 

무슨 말이냐면, "....... ${변수} ......" 가 deprecated 되었네요. php 개발팀에서는 이런 표현을 아무도 안쓰는 것 같으니까 없애버리겠다는 의도였던 것 같은데, 라이믹스 사용자들이 안보였나봅니다 ㅎㅎ ㅠㅠ.

 

슈퍼맨은 팬티를 밖에 입어야 슈퍼맨인데, 풍기문란이라면서 안에 입던지, 레깅스는 벗고 팬티만 입던지 하라는 말입니다. 갑자기 슈퍼맨이 x태가 되는 순간인 것 같습니다 ㅎㅎㅎ.

 

$rhymix = "Rhymix";

"Hello ${rhymix}" => deprecated

"Hello {$rhymix}" => ok

"Hello $rhymix" => ok

 

$rhymix = "Rhymix";

$rhymixptr = "rhymix";

"Hello ${$rhymixptr}" => deprecated

"Hello {$$rhymixptr}" => ok

"Hello $$rhymixptr" => ok

 

8.2에서는 deprecated에 그치지만, 과거 전례로보면 차차 warning을 거쳐 error로 발전하지 않을까 합니다. 워째 이런 일이...

  • profile

    아.. 라이믹스 템플릿 문법을 못쓰게되는건가요?

  • profile
    첫번째 구문도 되는것이었나요
    ide가 두번째 구문으로만 작성하라고 해서 저는 두번째로만 쓰고 있네요.
    세번째는 여러변수 삽입시 경계구분이 어렵다는 단점이 있습니다.
  • profile

    라이믹스 템플릿 문법은 {$rhymix} 입니다. ${rhymix} 형태는 단 한 번도 지원한 적이 없고, 그렇게 사용하는 자료를 본 적도 없습니다. 일반적인 템플릿에서는 중괄호 충돌 때문에 문자열 안에 "Hello ${rhymix}"라고 쓰는 것도 불가능에 가깝지요. 즉, 템플릿은 아무 문제가 없습니다.

     

    템플릿이 아닌 PHP에서야 어떻게 쓰든 자유이니, 모듈이나 애드온에서 위와 같은 문법을 애용하셨다면 슬슬 고치셔야겠지만... 이건 라이믹스 서드파티 자료에 국한된 문제는 아니고요.

  • profile profile

    템플릿 문법은 전처리 된 후에 php로 처리되니까, php 문법과는 상관없이 뭘로 쓰든 상관없죠. 따라서, 위에서 말한 것은 템플릿 문법으로 처리되지 않는 부분에 쓰는 것을 말한 것입니다 ㅎ.

     

    그러고보니, <div cond="${$name}"> 같은 것은, 문자열 안에 쓴 것이지만 템플릿 전처리 거치면서 if( ) 안으로 들어가니까, 이번에는 그냥 넘어갈것 같군요. 

  • profile
    제 자료 전반적으로 스트링안에서 변수를 사용하는 경우 위의 비슷한 문법을 많이 사용했습니다. 다만 "hello, {$rhymix}" 방식으로 전부 사용하고 있습니다.
    그래서 위와 같이 문제가 될 수 있는 부분이 존재하지 않으니 혹시나 제자료 사용하시는 분들에게 알려드립니다 :)
  • profile
    코어 전체를 ${ 로 검색해보니까, 문자열 안에 쓰인 경우가 좀 되기는 하지만, {$ 로 단순히 find/replace하면 대부분은 해결 될 것 같아 보이네요.