모듈에서 기존에 하드코딩 되어있던 문자열을 분리하면서 ko.php 와 같이 만들게 되었습니다

 

err1.PNG

 

이런식으로 lang.xml을 삭제하고 ko.php를 넣었습니다.

 

view.php에서나 skin에서는 $lang->msg_asdf 같이 호출해서 잘 작동하는 모습을 보여줬지만, 오늘 controller에서 작동하는 소스를 호출해보니 아예 빈칸으로 나와버리네요..

 

err2.PNG

 

return_message는 제가 view에서 메세지를 호출하게 하는 함수를 만든거고요, $lang->guild_point_leak를 왼쪽에 '에러!' 아래 출력을 해줘야 하는데, 위와같이 아무것도 나오지 않는 모습을 볼 수 있습니다.

 

지금은 눈에 보이게 출력하기 위해 저런식으로 재현을 했지만, debugPrint나 기타 다른 방법을 사용해도 저 $lang->guild_point_leak 에는 빈 문자열만 들어있는것 같습니다.

 

controller에서는 lang을 사용할 수 없나요?

 

 

만약 사용할 수 없다면 lang을 사용할 수 있게하는 방법이 있을까요?

 

다른거 개발하려다가 이 오류만 3시간째 잡고 있어서 착잡하네요 ㅜㅜ

  • profile

    해당 함수 내에서 $lang이라는 변수를 선언하신 적이 없으니 빈 칸으로 나오는 것이 당연하지요.

     

    $lang = Context::get('lang');

    이렇게 $lang 변수를 먼저 선언해준 후에 $lang->guild_point_leak를 사용하시거나,

     

    Context::getLang('guild_point_leak');

    이렇게 특정한 lang code만 개별적으로 불러오는 방법도 있습니다.

     

    그 밖에 $is_logged, $logged_info 등 스킨에서 흔히 사용하는 변수들도 마찬가지입니다. PHP를 비롯한 거의 모든 언어에서 함수를 만들면 그 함수 안에서 선언한 변수만 사용할 수 있습니다. (자바스크립트는 좀 특이한 예외...)

  • profile profile
    아 lang도 그렇게 선언이 필요하군요

    너무 자연스럽게 사용하고 있어서 잊고 있었네요..


    아 그리고 혹시 질문하나 더 해도 될까요?

    controller나 view같은 애들에 init()라는 함수가 있던데 이건 XE/RX 기본 함수인가요?
    그리고 기본함수면 언제 실행되는건가요? controller나 view php 파일이 불러와졌을때인가요?
  • profile profile
    init()은 ModuleObject 클래스에서 실행해 주도록 되어 있는데요, 함수를 선언하기만 한다고 항상 호출되는 것이 아니고 호출되는 조건이 좀 애매합니다. 클래스만 로딩되고 init()은 호출되지 않을 수도 있습니다. 가능하면 여기에 의존하지 마시기 바랍니다.
  • profile profile
    그렇군요.. 뭔가를 넣어도 실행이 안되는거 같아서 좀 이상해 하고 있었습니다

    감사합니다!
  • profile
    PHPStorm같은 PHP만 전문적으로 다루는 IDE를 써보시면 선언하지 않은 어떤 변수를 사용할때 에러를 보여줍니다.

    일반 IDE에서 그런 기능이 재대로 작동하지 않아 발생되는 문제이기도 하죠.

    라이믹스부터는 내부적으로 대부분 PHPStorm에도 호환성이 고루고루 잘 맞게 코딩도되었고 (그런말은 표준적인 PHP를 따라가고 있다는 뜻이기도하죠) 배우시는 입장이시라면 1년 8만원이 부담스럽다고 아깝지 않은 가격에 쓰시는것도 나쁘지 않을 것 같다는 생각이 들어요.

    한번 고려해보세요 :)
  • profile profile
    저는 vscode에 PHP 연동해서 오류 검출되게 사용하고 있었는데, 어디까지나 문법 오류만 알려주지 저렇게 논리적인 오류는 안 알려주더라고요

    옛날에 PhpStorm 사용했을때 너무 무거운거 같아서 지웠었는데, 라이믹스에서 코딩하기 괜찮다면 다시 한번 사용해봐야겠네요!
  • profile profile
    정의되지 않은 변수 정도는 vscode도 알려줍니다.
  • profile profile
    사용하는 플러그인에 따라 좀 편차가 다르긴한데.. 저의 경우 플러그인 대부분 테스트해봤었는데 그래도 PHPStorm만큼 재대로 알려주는 부분은 없더군요 T^T...

    그정도 안되면 써보는것도 시도하기가 애매해서 아직 재대로 써보진 못한거라 잘못세팅한걸수 있지만요 ㅎㅎ
  • profile profile
    와.. php를 잘 모르고 쓸때랑, 좀 알고 쓰는거랑 차이가 확 나네요 ㄷㄷ..

    프로젝트 불러올때 webdav로 마운트해서 라이믹스 폴더째로 불러오면 라이믹스 함수도 자동으로 나타나고, 인자도 자동으로 체크해주네요

    PHP에서 작동은 되는데 정식문법이 아닌것도 에러로 잘 알려주고, 안쓰인 변수도 에러로 알려줘서 정말 좋았습니다

    GIT도 이전에는 콘솔 열어서 일일히 명령어로 쳐줬는데, 이제는 그냥 마우스로 커밋&푸시도 되고, diff도 마우스로 스크롤해서 쉽게보고, 한글 입력 불편한 검정창 안봐도 되서 너무 좋습니다 ㅜㅜ

    옛날에 이런거 모를때는 그냥 쓸데없이 무거운 툴이라고 생각했는데, 좀 알고쓰니 다른툴은 더이상 못쓰겠네요..

    너무 감사합니다!!
  • profile profile
    로컬PC에 디버깅기능까지 추가하면 코드 한줄한줄마다 변수내용 확인하면서 디버깅 가능하십니다.