컴퓨터관련

Zend Framework

kall 2007. 3. 26. 20:55

http://framework.zend.com/ 

CakePHP, Symfony, ZF를 대충 훓어봤는데..ZF가 가장 나은것 같아 ZF를 사용하기로 결정했다.

장점이라면 구조가 비교적 단순한 편이다. controller를 제외하면 pear처럼 그냥 라이브러리 불러다 쓰듯 쓸수도 있다. controller에 익숙해 지는데도 많은 시간을 요구하는편은 아니고. pear나 smarty에 익숙하다면 얼추 하루정도 삽질해보면 익숙하게 쓸 수 있다. 타 프레임워크에 비해 학습비용이 제일 낮은 편.

쉽게 쓰인 튜토리얼도 한몫하고..0.6때 본 저 튜토리얼을 슬슬 번역하기 시작했는데..하다가 잠시 미뤘더니 이미 프레임워크가 0.9.1까지 나왔다. -_-; 거의 처음부터 다시해야 할판이라 포기. ;;

단점이라면 라이브러리의 성장이 좀 거친느낌. 아직 stable이 아닌 beta상태로 배포된다고는 하지만 하위호환성을 너무거의 고려하지 않고 버전업이 돼서 0.6에서 0.9.1까지 올라오는동안 고생이 좀 많았다. ㅠㅠ

  • 0.6 -> 0.7로 가면서 _redirect 함수가 속을 썩였고..(0.9 들어서 제대로 동작하더라..)
  • 0.7 -> 0.8로 가면서 _construct가 init으로 교체되면서 또 한동안 고생..
  • 0.8 -> 0.9로 가면서 Zend에 들어있던 함수들이 Zend_Loader나 Zend_Registry같은 녀석들로 분산되면서 기존소스 전부 먹통..그거 수정하느라 또 고생..

새버전이 나오면 '무슨기능이 추가됐을까?'하는 기대보다 '이번엔 또 무슨 문제가 일어날까'라는 생각이 먼저 드니 원..;;

stable버전이 나오면 저렇게 무작정 바꿔대는 습관이 좀 사라질거라는 기대를 하고 있을뿐..

그럼에도 저 프레임워크를 쓰게 되는건, 덜 익은 만큼 자유스럽달까. 다른프레임워크처럼 특정 디렉토리 구조를 강요하지 않는다. .htaccess로 Rewrite rule을 주무를 줄 안다면 디렉토리 구조를 자연스럽게 자신이 원하는대로 유지할 수 있다. 디렉토리 구조를 단순하게 유지한다면, 구지 특정 디렉토리 구조에 익숙해질 필요도 없고.

단순한구조 덕분에 smarty를 붙이기도 쉽고. 이전에 사용하던 smarty의 template파일을 그대로 사용할 수도 있어서, view를 익힐 필요도 없고 기존에 돌던녀석들을 마이그레이션한다고해도 view단을 수정하거나 새로작성할 필요가 없다.

대부분의 프레임워크가 public같은 디렉토리를 만들어서 이미지나 스타일시트를 모아놓는 방식을 채택하고 있는데..결국 디자이너(혹은 html코더)도 프레임워크의 디렉토리 구조에 익숙해져야 한다는 얘기인데(아니면 css기반 디자인을 능수능란하게 다루거나)..

순식간에 변신! 할 수 없는 상황에서는 직접 디렉토리 구조를 직접 조정해서 기존에 작업하던 방식을 크게 바꾸지 않고 진행해나가는 방법이 마음에 들었다.

그렇게 마이그레이션이 쉽다. view뿐만 아니라 다른 부분도 기존소스를 그대로 카피해넣어도 대부분 잘 돌아간다(물론 리팩토링이 필요하지만).

그리고 php5기반이라 대부분이 php4인 호스팅 같은 환경에서는 쉽게 사용하기는 힘들다. 하지만 독립서버를 쓰고 있다면 php5로 옮길 충분한 핑계거리가 된다. ;)

(데비안 사지에서)php4와 php5를 한서버에서 같이 돌리는 방법은 내일..