2013-02-14 96 views
0

类 'AdoDoctrineModel' 未发现在C:\瓦帕\万维网\测试\ SRC \腺苷\ FrontendBundle \助手\ AdoFactory.php上线22Symfony2中不能包括自定义类

<?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); 
     } 
    } 
} 

?> 

和AdoDoctrineModel。 PHP

namespace Ado\FrontendBundle\Helper; 

class AdoDoctrineModel { 

    public function __construct() { 

    } 

} 

我试图改变为完整的路径中AdoFactory使用路径,也加入 “使用{...}作为AdoDoctrineModel” 试过\新AdoDoctrineModel

任何帮助将是巨大的!

+0

你试过用过Ado \ FrontendBundle \ Helper \ AdoDoctrineModel;'? – jaudette 2013-02-14 14:45:13

回答

1

删除代码:

use AdoDoctrineModel; 
use AdoApiModel; 

,一切都应该正常工作。您需要重新理解php名称空间的工作原理,并检查名称空间上的文档。

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

1

我假设你正在使用Composer(Symfony 2.1.x)。你的代码看起来没什么问题,我会检查composer.json文件本节:

"autoload": { 
    "psr-0": { 
     "": "src/" 
    } 
} 

,然后发出:

composer dump-autoload 

当然文件AdoDoctrineModel.php应放在src/Ado/FrontendBundle/Helper文件夹内。因为两个类都在相同的名称空间中,所以不需要use语句。