2010-11-23 6 views
3

라우트에서 모듈 이름을 명시 적으로 언급하지 않고 모듈 특정 경로를 만들어야합니다. 지금은 각 모듈 (MODULE/configs/module.ini)마다 별도의 설정 파일을 가지고 있고 모듈 부트 스트랩에서 그 경로를 Zend Framework로 푸시합니다. INI 파일은 경로 정보를 보유하지만 경로의 모듈 이름을 언급합니다. 예 :젠드 프레임 워크의 모듈 특정 경로없이 모듈 이름을 지정하지 않고

routes.contents.route = "내용 /(.*)"
routes.contents.defaults.module = 내용
routes.contents.defaults.controller = 인덱스
routes.contents.defaults.action = 색인
+ 경로에 관한 기타 세부 정보.

모듈 이름 ("내용")이 명시 적으로 경로에서 언급 된 것을 볼 수 있습니다. 내가 원하는 것은 경로에서 모듈 이름 다음에 부분을 언급하고 경로 앞에 모듈 이름을 자동으로 추가한다는 것입니다. 그래서 나중에 모듈 이름을 CMS로 바꾸려면 모든 경로를 "CMS/xxxx"로 변경하지 마십시오.

답변

0

지정한 'route'는 원하는 것이 될 수 있습니다. 젠드 프레임 워크가 일치하면 아래에 설정된 기본값을 기반으로 경로를 실행합니다.

resources.router.routes.products.regex = "somethingawesome/(.*)" 
resources.router.routes.products.defaults.module = "ModuleName" 
resources.router.routes.products.defaults.controller = "awesome" 
resources.router.routes.products.defaults.action = "cool" 

위 '경로'

을위한 정규식 일치를 사용 - 모듈에 mysite.com/somethingawesome/whatever과 뜻 노선이 : MODULENAME, 컨트롤러 AwesomeController.php과 coolAction을()이

실행 이 정규식 내에서 할 수있는 많은 다른 일치 항목이지만 '무언가'라는 문자열은 전적으로 사용자에게 달려 있습니다. URL에서 일치시키려는 항목과 보낼 위치에 관한 것입니다.

+0

나는 그것을 사용하고 있지만 대부분의 모듈에서 경로는 모듈 이름으로 시작합니다. somethingawesome = 모듈 이름. 그래서 나는 방금 "무언가"다음에 슬래시 뒤에 경로를 입력하는 방법을 찾고 있었고 응용 프로그램은 모듈 이름을 자동으로 앞에 쓴다 (무언가). 모듈 이름은 realestate이고 모듈/realestate, controller => index, action => index에 realestate /(.*)를 전달하고 getParam을 사용하여 (. *) 값을 가져 오려고합니다. 나는 단지 경로 설정에 /(.*)를 추가하기를 원한다. 그래서 나중에 모듈을 "상업적"으로 이름을 바꾸면 나는 모든 경로를 바꾸지 않는다. – Bryan

+0

"/ realestate"를 "somethingelse"모듈로 이동하려면 '.module'구성 라인에서 변경하십시오. "/ realestate"로 설정된 경로 정규식은 전혀 변경하지 않아도됩니다. "/ realestate"를 "/"로 지정하고 "somethingelse"로 이동하려면 두 줄을 모두 변경하십시오. "/ realestate"가 "/"로 구성되어있을 때 작동을 중지하게하려면 기본 경로를 비활성화해야 할 수도 있습니다. –

+0

이제는 "/(.*)"의 경로가 모든 것을 차단하고 다른 모든 모듈/경로는 작동하지 않습니다. 그냥 머리를 올려. –

관련 문제