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 대소문자 구분 문제를 해결합니다.