갑자기 제로보드 개발이 안되고 있다. -_-;
몇가지 버그와 기능향상을 위해서 코드를 수정하려 하는데... 누가 짠 코드지? 하는 생각이 들어버렸다.
기본 라이브버리 몇개만 초반에 여유있게 작성했고 그 후에는 정말 구현만을 위한 날림 코딩을 해버렸더니 코드가 정말 개판.. ㅡ.ㅜ
여유있게 고민해서 만든 코드는 지금 봐도 이해가 되고 수정이 용이한데.. 역시 날림 코딩은 보기도 싫어버린다.
움...
문서, 댓글, 엮인글등을 개별 객체로 활용하고 변수가 아닌 method로 좀 편하게 적용하기 위해 코딩을 잔뜩 했다가 템플릿의 구조로 인해서 오늘 코딩한 부분 싹 지워버렸다.
(php5에서라면 가능한데 제로보드XE는 php4부터 가능하게 만들어서.. ㅡ.ㅜ)
아무튼 거두절미하고...
현재 제로보드XE는 php4부터 가능하게 하기 위해 php5의 아름다운(혹은 발전된) class 문법을 사용하지 못한다.
일단 차후 php5로의 업그레이드를 위해서 껍데기는 class로 이루어져 있지만 내용은 그렇지 못하다.
예를 들어 요청된 게시글(문서)를 dB에서 찾아서 template으로 넘기는데 object가 아닌 variable로 넘긴다. -_-;
(현재 템플릿 핸들러의 구조상 그럴수 밖에 없다.. 쩝...)
예를 들어 템플릿에서 {$oDocument->getTitle()} 하면 제목이 나오게 하고 싶었다.
지금은 {$document->title} 라고 해야 제목이 출력된다.
이 둘의 차이는 범용성에 있다.
예를 들어 문서의 permanent url을 표시하려고 할때
객체스타일 : {$oDocument->getPermanentUrl()}
변수로만 : ./....?document_srl={$document->document_srl}
근데 문제는.. permanent url이 rewrite mod를 이용하여 "도메인/문서번호" 로 사용가능하다고 할때 변수로 넘겨진 경우에는 템플릿 코드 자체를 바꾸어야 한다.
객체의 경우는 getPermanentUrl() 의 구현코드만 바꾸면 템플릿 부분을 건드릴 필요가 없다.
이 예는 극단적(?)인 부분중 하나이고 제로보드XE의 구조가 model/view/controller 인 이상 내부적으로 변수가 아닌 객체로 데이터를 주고 받아야 하는데 지금 코드와 php4의 특성상 이게 조금 어렵다.
아고.. 글 쓰는 것도 귀찮네..
차후 오픈프로젝트 진행할때 중요 부분으로 코드 리팩토링이 있는데 나보다 뛰어난 분들이 많으시니 더 멋지게 리팩토링 가능하겠지... ㅡ.ㅜ