我正在ZendStudio 11中使用ZF2开发一个个人理财应用程序。从新建Zend项向导添加新控制器后,我收到以下致命错误。这是截图。
错误:
_Fatal error: Cannot redeclare class Application'Controller'OutcomeController in **C:'wamp'www'PersonalFinance'module'Users'src'Users'Controller'OutcomeController.php** on line 33_
OutcomeController
类代码如下:
<?php
namespace Application'Controller;
use Zend'Mvc'Controller'AbstractActionController;
use Zend'View'Model'ViewModel;
/**
* OutcomeController
*
* @author
*
* @version
*
*/
class OutcomeController extends AbstractActionController
{
/**
* The default action - show the home page
*/
public function indexAction()
{
// TODO Auto-generated OutcomeController::indexAction() default action
return new ViewModel();
}
public function fooAction()
{
// This shows the :controller and :action parameters in default route
// are working when you browse to /income/income/foo
return array();
}
}
我还在autoload_classmap.php
文件中添加了以下行:
'Users'Controller'OutcomeController' => __DIR__ . '/src/Users/Controller/OutcomeController.php',
所以:
- 我已使用向导添加了控制器
- 我已经添加了所需的控制器配置到
module.config.php
- 我添加了自动将配置行加载到
autoload_classmap.php
知道为什么会发生错误吗?
正如错误消息所暗示的那样,类Application'Controller'OutcomeController
已在应用程序的其他位置定义。
这与使用 ZendStudio 的向导、正确配置 ZF2 或自动加载无关。这是PHP的事情:你不能在你的应用程序中有两个同名的类(考虑到命名空间)。
为了避免此问题,您可以更改类的名称或更改声明它的命名空间。