아래는 내 Bootstrap
클래스에 정의 된 함수입니다. 젠드가 라우팅 및 디스패치하는 방식에있어 근본적인 것을 놓치고 있어야합니다. 내가 성취하려고하는 것은 간단합니다 : 어떤 이유로 든 파견 할 수없는 어떤 요청도 /foo/bar/*
일 경우 /index/foo/bar/
을 시도하십시오. 내가 가지고있는 문제는 FooController
이 존재하면 Action "foo" does not exist
이됩니다. 기본적으로 isDispatchable
은 항상 거짓입니다. 내가 당신의 생각을 이해한다면컨트롤러가 발견되지 않을 때 기본 컨트롤러를 통한 라우팅 zend 요청
public function run() {
$front = Zend_Controller_Front::getInstance();
$request = $front->getRequest();
$dispatcher = $front->getDispatcher();
//$controller = $dispatcher->getControllerClass($request);
if (!$dispatcher->isDispatchable($request)) {
$route = new Zend_Controller_Router_Route(
':action/*',
array('controller' => 'index')
);
$router = $front->getRouter();
$router->addRoute('FallBack', $route);
}
$front->dispatch();
}
어떤'__call' 메서드를 사용하고 있는지 확실하지 않습니다. 어떤 수업? 보다 구체적으로이 경우 컨트롤러 클래스는 존재하지 않습니다. 새로운 경로를 소개하고자하는 이유는 루프를 시작하고 라우터가': action /'다음에 오는 모든 것을 제대로 잡도록하기 위해서입니다. 그러나 라우터와 디스패처가 아직 준비되지 않았기 때문에 부트 스트랩에서이를 수행 할 수 없다는 것을 알고 있습니다. 그것은 내가 플러그인이나 뭔가를 만들어야 할 것 같아. –
@brett 잘하면 내 대답은 당신을 도울 것입니다. – tawfekov