我该如何解决"不能重新宣布课程" zf2中的错误?

时间:2015-03-10 10:45:02

标签: php zend-framework2

我在ZendStudio 11中使用ZF2开发个人财务应用程序。从 New Zend Item 向导添加新控制器后,我收到以下致命错误。这是screenshot

错误:

_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

出现错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

正如错误消息所示,类Application\Controller\OutcomeController已在应用程序的其他位置定义。

这与使用ZendStudio向导,正确配置ZF2或自动加载无关。这是一个PHP的东西:你不能在你的应用程序中有两个具有相同名称的类(考虑命名空间)。

要避免此问题,您可以更改类的名称或更改声明它的命名空间。