개발자님께서 무슨이유인지는 모르겠지만, 코드상에 엉청난 오류가있었습니다.
원인을 못찾다가 겨우찾았네요 ;;
유튜브 모듈의 youtube.model.php 파일에서 자주 불러들이는 코드가 있습니다. (서버와통신하는 자료입니다.)
public function getRealPlaylistId($apiKey, $playlistId)
해당 메소드에서 사용되는 코드중에서 뭔가 잘못된 사항이 있습니다.
//From YouTube Server public function getRealPlaylistId($apiKey, $playlistId) { $youtube = new XFYoutube(null, $apiKey); if(!is_null($apiKey)) { $return = !is_null($playlistId) ? $playlistId : (!is_null($this->module_info->playlist_id) ? $this->module_info->playlist_id : "PLmtapKaZsgZt3g_uAPJbsMWdkVsznn_2R"); //실시간 인기 동영상 - 한국 $result = $youtube->playlistItems->browse("id", null, $return, 0); if($result === false) { $channel = $youtube->channels->browse("contentDetails", null, $return); if($channel === false || is_null($channel[items][0][contentDetails][relatedPlaylists][uploads])) { $channel = $youtube->channels->browse("contentDetails", null, null, $return); if($channel === false || is_null($channel[items][0][contentDetails][relatedPlaylists][uploads])) { $return = false; break; } else { $return = $channel[items][0][contentDetails][relatedPlaylists][uploads]; } } else { $return = $channel[items][0][contentDetails][relatedPlaylists][uploads]; } } unset($result, $channel); } else { $return = false; } return $return; }
항목에 보시면 해당 파일 46번째줄 아래 break 를 쓴것이 보입니다.
if문에서는 절대 break 를 쓰지 않습니다.. php5.5 대에는 정상적으로 그래도 무시하고 사용한것으로 보여지나, php7.0에서는 500에러를 내뿜고 실행조차도 안해주죠. 이경우 디버그가 어려운부분이 있었습니다..;;
php 전체 에러를 남기는 에러로그를 보고 알았습니다.
[25-May-2016 04:02:13 Etc/GMT-9] PHP Fatal error: 'break' not in the 'loop' or 'switch' context in /여기는 나의 사이트경로다 안가르켜주지/modules/youtube/youtube.model.php on line 47
라고 에러가 떴습니다. 즉, break 는 loop 를 돌리는 공간이나 switch에서 반복을 중단시킬때 사용하는 목적이지 여기에서 이만 나가겠서 라고 통하는 코드가 아니라는 소리입니다.
그럼 정상적인 작동을 하기 위해서는 해당 46번, 47번째줄의 코드를 이렇게 바꿔야합니다.
$return = false; break;
에서,
return false;
으로 한줄로 바꿔주시면 됩니다. (어차피 메소드를 빠져나가고 재일 아래 return $return 처리한 $return 값이 의도하는 바대로 false 이므로 동일합니다.)
이 부분만 수정하고 넘겨버리면 되겠네요.