2010-01-15 2 views
1

나는 Zend_Controller_Router_Rewrite의 우아함과 그것이 사용하는 다양한 경로 클래스를 매우 좋아합니다.OOP를 사용하여 PHP에서 URL 라우터 작성/설계에 대한 팁

URL을 매개 변수 집합으로 변환하고 다시 조합 할 수 있도록 독립 실행 형 구성 요소와 매우 유사한 라우팅 시스템을 작성하고 싶습니다. 아이디어는이를 사용하여 경로별로 URL 정규화 처리기를 선택하는 것입니다.

필자는 실제 Zend Controller Route 클래스를 확장하여 직접 만들 것을 고려했습니다. 그러나 이러한 클래스는 Zend MVC의 도메인 언어로 매우 깊숙이 라우팅되어있는 것처럼 보입니다.

내 프로젝트에서 사용할 수있는 독립 실행 형 라우팅 패키지/클래스 집합을 알고 계십니까?

젠드 라우터는 내가 직접 작성하는 경우 사용할 수있는 특정 디자인 패턴의 예입니까?

URI 라우터 작성에 대한 조언이 있으십니까?

답변

1

체크 아웃 합금 PHP 프레임 워크에서 URL 라우터 :이 독립 라이브러리로 프레임 워크 외부에서 사용에 대한 제목 특정이며, 이럴가 Zend_Controller_Router_Rewrite보다 훨씬 더 우아한 해결책이
http://alloyframework.org/manual/url-router/

.

+0

감사합니다. 나는 결코 합금에 대해 들어 본 적이 없었다. 나는 그것의 철학 "암시 적 이상 함"을 좋아합니다. 와 "OOP ... 그건 자바와 같아 지려고 노력하지 않는 것"입니다. 나는 그것을 조사하고있다. –

+0

동정, 괜찮아 보이지만, 나는 그것이 단지 PHP 5.3입니다 것으로 나타났습니다. 나는 레거시 앱을 미리 준비하여 5.3 버전으로 만들려고 노력하고있다. 그래서, 그것을 사용할 수 있기 전에 그때까지 기다려야 할 것입니다. HMVC 아키텍처가 마음에 듭니다. –

+0

Alloy의 URL 라우터는이 시점에서 5.3 기능을 사용하지 않으므로 PHP 5.1 또는 5.2 코드에서 사용할 수 있도록 네임 스페이스를 제거하는 것이 안전해야합니다. 또한, 라우터는 이전에 PHP5 (5.3이 아님) 프로젝트에서 가져 왔으며,이 프로젝트는 AppKernel (http://github.com/actridge/AppKernel)을 시작하여 Alloy 프레임 워크에 동화되었습니다. 주요 개념은 여전히 ​​동일하며 모든 단위 테스트를 거쳤습니다. –

0

나는 당신의 질문을 잘못 이해하지 않기를 바랍니다.

나는 Zend_Controller_Router를 사용하지 않았지만 codeigniter와 cakephp 라우터는 URL 매개 변수를 '/'로 분해하고 다른 컨트롤러와 메소드에 맵핑합니다. 처음부터 구현하기가 어렵지 않습니다.

+0

감사합니다. 그것은 매우 합리적인 대답입니다. 그러나, 나는 그것을 좀 더 복잡한 레거시 URL의 겉잎을 추는 데 사용하려고합니다. 다양한 전략과 규칙의 조합 사용. 젠드 라우터는 이러한 일을 할 수 있습니다. 결국, 나는 그들의 코드를 통해 가서 파란색 프린트로 사용할 수 있습니다. 용액을 접시에 나에게 건네 줄 수있는 경우에 대비하여 시작점을 퍼내는 것뿐입니다. –