Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

PHP 5.3에서 CodeIgniter "Deprecated Functions" 오류

저의 선택과 집중 리스트에 전혀 없었지만 머 현실이 맘처럼 안되듯이 PHP를 만지게 되었습니다. 제 블로그인 Textcube도 그렇고 PHP를 할 줄 알면 좀 재미있을 것 같기는 했는데 딱히 따로 접할 기회는 없었는데 이번에 만져봐야 되게 되었고 ASP보다는 좀 재밌을것 같아서 틈틈히 만져보려고 합니다. 언어를 먼저 익히는게 순서인데 상황이 그렇게 여유있지는 않아서 프레임워크부터 만지는 것은 좀 찜찜하지만 이번에는 그냥 그렇게 익히려고 합니다.

PHP에는 여러가지 프레임워크가 있습니다. CakePHP, Zend Framework등이 있는데 최근에 CodeIgniter가 가볍고 빨라서 인기를 끌고 있는듯 합니다.(한국사용자포럼) 약간 구경해보니 Ruby on Rails의 개념을 많이 가져온 것처럼 보였습니다. PHP의 창시자인 Rasmus LerdorfCodeIgniter를 추천했다고 합니다.

어쨌든 프레임워크를 사용해보려고 APM을 깔고 Codeigniter를 설치하고 돌렸더니 튜토리얼과는 다르게 아래와 같은 오류메시지가 떴습니다. PHP 5.3이었고 CodeIgniter는 현재 최신 버전인 1.7.1을 사용하였습니다.

CodeIgniter Deprecated 에러 화면

튜토리얼과는 다르게 에러메시지가 죽~ 떠버렸습니다 ㅠ..ㅠ 처음만지는 것데 튜토리얼과 다르게 돌아가니까 약간 당황되더군요.

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\CI\system\codeigniter\Common.php on line 130

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\CI\system\codeigniter\Common.php on line 136
프레임워크 소스까지 열어보기는 좀 그렇고 핵심은 Deprecated였습니다. 이 단어는 보통 새 버전에서 이전버전의 기능을 더이상 권장하지 않을때 사용하는 단어이지요. 그래서 찾아보았더니 CodeIgniter의 Bug Tracker에 PHP 5.3 Deprecated Functions라는 버그가 등록되어 있고 현재 개발중인 SVN소스에서는 수정되었다고 나와 있었습니다.

CodeIgniter 1.7.1이 PHP 5.3이 나오기 전에 Release되었기 때문에 PHP 5.3에서 Deprecated되어버린 Function에 대한 오류메시지가 나타난 것입니다. 그래서 CodeIgniter SVN 저장소에 가서 개발중인 소스를 가져왔습니다.(공개되어 있는데 이상하게 Aptana Studio의 Subclipse에서는 암호를 묻는 창이 떠서 접근할 수가 없었습니다. TortoiseSVN에서는 접근이 잘 됩니다. ㅎ)

CodeIgniter 첫 화면

1.7.2개발버전으로 패치하니까 정상적으로 잘 돌아갑니다. 아직 Stable한 버전이 아니므로 서비스용도로 쓰기엔 어떤 문제가 있을지 알수 없기는 합니다. 처음시작부터 이렇게 힘들어서야 원... ㅡ..ㅡ
2009/09/03 01:51 2009/09/03 01:51