> 백엔드 개발 > PHP 튜토리얼 > zend Framework_php 예제의 URL 사례 문제에 대한 솔루션

zend Framework_php 예제의 URL 사례 문제에 대한 솔루션

WBOY
풀어 주다: 2016-05-16 20:38:13
원래의
1061명이 탐색했습니다.

Zend Framework 프레임워크로 프로젝트를 개발한 네티즌들은 Zend Framework(ZF) MVC의 Controller 및 Action 이름이 기본적으로 대문자와 소문자를 지원하지 않는다는 것을 알고 있습니다. 이는 Camel Case 코드 스타일에 익숙한 개발자를 위한 것입니다. .분명히 용납할 수 없는 일입니다. 다행스럽게도 Zend Framework가 대문자 및 소문자 컨트롤러 및 작업 이름 지정을 지원하도록 프런트엔드 컨트롤러 FrontController의 useCaseSensitiveActions 매개변수를 설정할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

$front = Zend_Controller_Front::getInstance();

$front->setParam('useCaseSensitiveActions',true);


이제 AppController에 CoderBolgAction()이라는 Action이 정의되어 있고 이 Action에 액세스하려면 URL을 http://localhost/app/coder-bolg/로 작성해야 합니다. 앞에 '-'가 붙습니다. 괜찮습니다. 적어도 문제는 해결되었으며 '-'를 추가해도 SEO에 영향을 주지 않으며 Camel Case보다 검색 엔진에 훨씬 더 친숙합니다. 그러나 더욱 참기 힘든 또 다른 문제가 발생했습니다. 바로 URL도 대소문자를 구분한다는 것입니다. 즉, 사용자가 URL에 특정 Action 문자를 대문자로 입력하면 표시되지 않습니다. 실신...하지만 해결하기가 더 쉽습니다. 해결 방법은 라우팅하기 전에 ModuleName, ControllerName 및 ActionName을 소문자로 변경하는 것입니다. Zend_Controller_Action 하위 클래스의 init() 메서드에 다음 세 줄을 추가했습니다(우리 프로젝트에서는 이 하위 클래스가 Zend_Controller_Action을 상속하고 Controller가 이 클래스를 상속하도록 함).
코드 복사 코드는 다음과 같습니다.

$this->_request->setModuleName( strtolower( $this->_request->getModuleName() ) );

$this->_request->setControllerName(strtolower($this->_request->getControllerName()));

$this->_request->setActionName( strtolower( $this->_request->getActionName() ) );


이는 URL 대소문자 구분 문제를 해결합니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿