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

리모델링 중인 스케줄 모듈에서 모듈명.item.php를 만들고 getThumbnail() 함수를 적용했는데 얘가 말을 안 듣네요.

HTTP ERROR 500를 쏩니다.

 

근데 같은 내용으로 해도 함수 이름을 takeThumbnail()처럼 하면 멀쩡하게 썸네일 생성하고 가져오고 그럽니다.

이게 뭔 조화인지.

 

getThumbnail 함수명은 다른 모듈에서 사용 불가능한 건가요?

(스케줄 모듈 원판에도 함수 이름은 scheduleGetThumbnail으로 돼 있더군요)

  • profile

    HTTP 500 에러가 발생할 때는 반드시 에러메시지가 남습니다. 라이믹스 디버그 기능이나 서버의 에러 로그를 사용해서 에러메시지와 에러 발생 위치를 찾아야 정확히 무슨 원인인지 알 수 있습니다. 모듈 만드시는 분이라면 이건 필수겠죠? ㅎㅎ

     

    ---------- 에러메시지 확인하신 후에 보세요 ----------

     

    완전히 별도로 선언한 item 클래스가 아니라 기존에 있던 documentitem, commentitem, contentitem 등을 상속받거나 참조했다면 동일한 이름의 함수를 중복 선언했을 때 문제가 생길 수도 있습니다.

     

    아무 것도 상속받지 않은 독립된 클래스라도 만약 다른 자료에서 document, commentitem, contentitem 등으로 오인할 소지가 있다면 (예: 게시판에서 흔히 사용하는 $oDocument나 $document_list라는 변수에 실제 documentitem이 아닌 것을 넣었다면) 엉뚱한 곳에서 예상치 못한 방식으로 호출될 위험이 있습니다.

  • profile profile
    네, 에러 로그 봤다가 함수 중복이라 그래서 다시 들여다보니 정말 같은 파일 안에서 두 번 정의를 했더라구요.
    언젠가 파일 하단에 가라로 함수 이름이랑 자리만 잡아놓고 까먹었던 모양입니다.
    이럴 수가... 정말 저는 선무당 같아요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
  • profile profile
    ㅋㅋㅋ 파일이 너무 크면 그런 문제가 생길 수 있죠... 만든 사람도 뭐가 어디 있는지 가물가물...
  • profile

    원래 스케줄모듈에는 따로 썸네일을 출력하는 기능이 없는데 추가된 기능에 있나보군요.

    말씀하신것처럼 일반적으로 getDocument 가져올때 혹은 리스트 가져올때 DocumentItem 을 참조하게 되면 해당 getThumbnail을 사용할 수 있는데 그 외의 모듈에서 DocumentItem처럼 만들어둔 것 에서 getThumbnail 혹은 비슷하게 섬네일을 가져오는 기능을 만들지 않는이상 없습니다.

    대게 서드파티에서 그런걸 잘 안만들고.. 필요하시다면 public static 선언하여 만들어두 됩니다. (코어파일이 아닌 서드파티자료인경우에요)

    그러면 해당클래스::getThumbnail($moduleItem_srl) 뭐 대충 이런 느낌으로 가져올 수 있을거예요.

     

    그 외 주의할 점은 기진님께서 잘 설명해주셧네요 :)

  • profile profile

    에러 로그 보고 함수 중복 확인해서 바로 잡았습니다ㅜㅜㅜ
    (근데 기억 못하시는 것 같은데 스케줄 모듈 아이템에 섬네일 함수 있어효. 속닥속닥ㅋㅋㅋㅋ)

  • profile profile
    아..있구나 ㅋㅋㅋㅋㅋㅋㅋ