2011-04-01 4 views
0

URL 매핑을 처리하는 방법에 어려움을 겪고 있습니다. 지금 저는 Zend Framework를 사용하여 사진 갤러리 시스템을 구성하는 중입니다. 갤러리 시스템은 카테고리 및 갤러리를 처리 할 수 ​​있습니다. 카테고리는 하위 카테고리 또는 갤러리를 가질 수 있습니다. 갤러리에는 이미지가 있습니다. 이 이미지젠드 라우터 로직

domain.com/gallery/ < == 메인 갤러리 페이지

domain.com/gallery/category1/gallery1/ < == 표시 갤러리 ... 나는 다음과 같은 URL 가능성을 가질 수 있음을 의미 갤러리의

domain.com/gallery/category1/category2/ < == 표시 갤러리의 이미지

domain.com/gallery/category1/category2/gallery1 < == 표시 갤러리

,개

domain.com/gallery/category3/gallery2/image1 < == 디스플레이 단일 이미지 페이지 < == 장애인 범주 그러므로

domain.com/gallery/gallery3/는 이미지

어떻게의 갤러리를 표시 여러 옵션을 처리합니까?/{category}/{gallery}/{image} /가 될 수있는 간단한 작업이 있다면 그걸 함께 정리할 수 있습니다. 그러나 나는 변수의 수가 바뀌는 곳에서 그것을 관리하는 방법에 고심하고있다.

각 갤러리/카테고리/이미지가 갤러리와 카테고리가 같은 이름을 공유하지 않는다는 것을 의미하는 고유 한 이름을 가지고 있다고 가정하면, 마지막으로 제외 된 모든 변수를 무시할 수 있습니다. 마지막 변수를 가져 와서 이미지 테이블, 갤러리 테이블, 범주 테이블과 비교 한 다음 첫 번째 변수에 히트가 올 때 올바른보기로 전달하는 스크립트를 설정할 수 있습니다. 이것은 갤러리 시스템에 대한 각 호출에 대해 가능한 3 가지 모델 쿼리로 상당히 리소스 집약적 인 것으로 들리지만, 다른 방법으로는 생각할 수 없습니다.

누구나 가장 효율적으로 수행 할 아이디어 나 제안이 있습니까?

답변

1

url은 IMO 카테고리의 계층 구조를 알아야 할 필요가 없습니다. 동의 주어진 경우 갤러리 컨트롤러가 있음이처럼 그것을 해결할 수 :

domain.com/gallery/display/gallery/23
domain.com/gallery/display/category/42
도메인을 .com/gallery/display/image/5

이는 표시 작업 만하고 나머지는 params로 전달한다는 것을 의미합니다. param 갤러리를 통과 한 경우 해당 ID로 갤러리를 표시하고 param 카테고리를 전달한 경우이 카테고리에 하위 카테고리가 있는지 확인하고 해당 갤러리 또는 각각의 갤러리를 표시합니다.

갤러리 모듈, 디스플레이 컨트롤러 및 갤러리, 카테고리, 이미지 작업이있는 솔루션을 생각해 볼 수도 있습니다. 이 경우에는 URL에/아이디/부품을 추가해야합니다 :

domain.com/gallery/display/gallery/id/23

는 계층 구조 밖으로 모델 그림을 보자 빵 부스러기 등으로 그것을 반영하십시오.

+0

충분히 쉽습니다. 실용적인 스크립팅 이유보다는 가독성과 SEO를 위해 URL에 계층 구조를 넣으려고했습니다. 귀하의 권리는 제안 할 때 쉽고 사실 지금 내가 개발 중에하고있는 것이지만 뭔가를하기를 바랬습니다. 더. 나는 사용자 탐색을위한 빵 부스러기 만 할 수 있다고 생각한다. –

+0

무엇을 얻겠습니까? 나는 가독성이 더 좋은 방법이라고 생각하며 SEO는 나아지지 않을 것입니다! KISS 원칙이 여기에 적용되는 것 같습니다! – markus

+0

좋은 소리. 감사! –