2013-02-14 100 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語句。