php zend错误:没有为此应用程序定义的默认模块

So I'm using zend framework and I have this code in a file called UrlRouter.php:

class UrlRouter extends Zend_Controller_Plugin_Abstract
{
    public function routeStartup($request)
    {
        $url = $request->getRequestUri();

        echo $url;

    }
}

and then I have this in my index.php

require_once("UrlRouter.php");

$front = Zend_Controller_Front::getInstance();
$front->registerPlugin(new UrlRouter($this->getRequest()));
$front->dispatch();

but then I get the error message:

Fatal error: Uncaught exception 'Zend_Controller_Exception' with message 'No default module defined for this application' 

what did I do wrong?

the controller plugin seems to be doing its job though...it printed the uri properly but then it is followed by that error message

It happens because:

  • The request didn't have a module name in it; and
  • There is no default module set.

This means that querying an URL like:

http://path/to/your/app?module=foo

...should work. Or you can define a default module:

$front->setDefaultModule('foo');

If you have the controllers under /application directly, you need to tell them that the controllers directory is application

$front->setDefaultControllerDirectory('application')