서버쪽은 디버깅하기가 너무 힘든 것 같아요.

php는 xdebug같은 좋은 툴도 있긴 하지만

꽤 환경설정을 갖춰야 하는지라 

준비 안된 환경에서 갑자기 사용하려고 하면

결국 안쓰게 되더라구요.

파일에 출력하는 로그는 매번 확인이 어렵다보니

수집해두었다가 나중에 확인하는 용도로 써야지

조금씩 바꿔가며 결과 보는데 쓰기엔 힘들더라구요.

내 컴퓨터에서 못보고 SSH 상에서 에디터로 열어야 하니...

콘솔 로그 출력은 참 의미없고...

log4php나 Monolog같은 좋은 툴도 있던데

이건 composer기반으로 쓰게 되어 있다보니

뭔가 계륵스럽더라구요.

XE나 그누보드같은데서 쓰기엔 참 애매한...

결국엔 깡디버깅을 하게 되더라구요...

걍 HTML 사이사이에다가 echo나 var_dump로 그냥

로그 출력하고... 그게 아니면 아예 감으로 수정하고

결과 확인...돌아가는 사이트에다가 이 짓을 자주 하다보니

사람들이 자주 맨날 관리자님 사이트가 이상해요라고 그러네요

좀 여유가 있으면 내 컴퓨터에 윈도우용 아파치 깔고

개발서버 별도 구축해서 로컬로 개발하는게 좀 쉬운듯..

일일이 파일 싱크해줄 필요도 없구요.

  • Lv36

    1. 소스에서 echo 대신 error_log() 함수로 메시지를 보내면 화면에는 찍히지 않고 로그에만 찍힙니다. 배열 구조를 찍고 싶을 때는 var_export(변수, true)를 사용하세요. 이 때 ssh로 접속해서 로그 파일을 tail -f 해두면 그때그때 찍히는 메시지가 터미널에 주르륵 나와요. 로그 파일은 에디터로 열어보는 거 아닙니다 ㅎㅎ

     

    2. 항상 인클루드되는 config.user.inc.php 파일에 define('IS_ADMIN', ($_SERVER['REMOTE_ADDR'] == '관리자아이피')); 한 줄 미리 넣어놓고, 중간중간 echo나 var_dump를 하고 싶을 때 if(IS_ADMIN) var_dump(...); 이렇게 하면 다른 사용자에게는 보이지 않습니다. 저도 귀찮을 때는 많이 쓰는 수법이예요. XE 템플릿에서 $_SERVER를 쓰면 안되지만, 상수를 따로 선언해 놓으면 자유롭게 참조할 수 있으니까요.

  • Lv36 Lv5
    오오 꿀팁 오오... 와드 찰지게 박고갑니다!