Class Symfony2可以';不包括自定义类

Class Symfony2可以';不包括自定义类,class,symfony,doctrine,Class,Symfony,Doctrine,在第22行的C:\wamp\www\test\src\Ado\FrontendBundle\Helper\AdoFactory.php中找不到类“AdoDoctrineModel” <?php namespace Ado\FrontendBundle\Helper; use AdoDoctrineModel; use AdoApiModel; class AdoFactory { protected $adapter; public function __cons

在第22行的C:\wamp\www\test\src\Ado\FrontendBundle\Helper\AdoFactory.php中找不到类“AdoDoctrineModel”

<?php

namespace Ado\FrontendBundle\Helper;

use AdoDoctrineModel;
use AdoApiModel;

class AdoFactory {
    protected $adapter; 

    public function __construct($container) {
        $this->adapter = $container->getParameter('adapter'); 
    }

    public function getModel()  {

        switch($this->adapter)
        {
            case 'API':
            case 'Doctrine': 
                $class = 'Ado' . $this->adapter. 'Model'; 
                return new $class;
            break;
            default: throw new Exception("unsupported format: " . $type);
        }
    }
}

?>
我已尝试将AdoFactory中的使用路径更改为完整路径,并添加了“使用{…}作为AdoDoctrineModel” 已尝试\新建ADODictrinModel


任何帮助都会很好

我假设您使用的是Composer(Symfony 2.1.x)。您的代码对我来说很好,我会检查
composer.json
文件中的以下部分:

"autoload": {
    "psr-0": {
        "": "src/"
    }
}
然后发布:

composer dump-autoload
当然,文件
AdoDoctrineModel.php
应该放在
src/Ado/FrontendBundle/Helper
文件夹中。不需要使用
语句,因为两个类都在同一命名空间中。

删除该代码:

use AdoDoctrineModel;
use AdoApiModel;
一切都会好起来的。您需要重新了解php名称空间是如何工作的,请查看名称空间上的文档


您当前告诉应用程序的是获取一个不存在的\AdoDoctrineModel类和\AdoApiModel,而不是
\Ado\FrontendBundle\Helper\adoctrinemodel
\Ado\FrontendBundle\Helper\AdoApiModel
类。

您是否尝试过
使用Ado\FrontendBundle\Helper\adoctrinemodel
use AdoDoctrineModel;
use AdoApiModel;