KakaoTalk_20190712_003642198.png

 

XE Profiler 모듈을 설치해서 어드민 페이지 > 모듈 > Profiler > 트리거 메뉴에 들어갔으나 위 와 같은 오류가 발생합니다.

특정 메소드에 인자값을 두개 넘겨줘야 하지만, 인자로 넘어오지 않아서 발생하는 오류인데요,

문제는 이게 애초에 최초로 릴리즈된 소스코드를 뜯어보아도 "getTriggers"메소드에 인자로 넘겨주는 변수가 없다는겁니다.

 

최신 코어에서 발생되는 이슈인지 찾아보기 위해 1.7.8 버젼까지 내려가봤지만 그 때 당시 코어에서도 "두개의 인자"를 넘겨줘야하더라구요.

 

문제가 되는 Profiler 모듈 소스 : https://github.com/xpressengine/xe-module-profiler/blob/45cfb4097a3e33ba6b0172c6c307e10cef43f2e4/profiler.admin.model.php#L219

문제가 되는 XE-Core 소스 : https://github.com/xpressengine/xe-core/blob/c3355a7a51de24c87d284f143719ae44c91d7e3d/modules/module/module.model.php#L629

 

혹시 프로파일러 모듈을 사용하려면 별도의 설치과정이 필요한건지 알고싶습니다.

고수님들의 조언 부탁드립니다 ㅠㅠ

 

감사합니다.

 

  • Lv36

    PHP 7.1 이상 버전에서 발생하는 에러입니다.

    128줄의 함수 선언 부분에서 모든 파라미터에 기본값을 지정해 주세요. 예: ($arg = null)

  • Lv36 ?
    잘 작동되네요! 빠르고 정확한 답변 감사드립니다.
  • ? Lv30

    그냥 펑션($arg = null) 에 넣으신건가요?

     

     

    function getModuleList($arg = null)

  • Lv30 Lv36
    네. 만약 function getModuleList($arg) 이렇게 되어 있는 곳에서 에러가 난다면
    function getModuleList($arg = null) 이렇게 바꾸시면 됩니다.
    PHP 7.1 미만 버전에서 파라미터 갯수가 부족하면 어차피 기본값이 null로 들어갔기 때문에
    에러만 없어지고, 작동 방식은 기존과 똑같을 거예요.
  • Lv36 Lv30
    그냥 괄호만 있어요~
  • Lv36 Lv30
    어.. 제가 낮에 제파일 라인 위치랑 다르네요...
  • Lv30 Lv36
    그냥 괄호만 있는 건 함수를 호출하는 부분이겠지요. 만약 함수를 선언하는 부분에 그냥 괄호만 있다면 파라미터 갯수가 부족할 일이 없으니, PHP 7.1 이상 버전에서도 에러가 나지 않습니다.