2013-02-14 2 views
0

класса 'AdoDoctrineModel' не найден в C: \ WAMP \ WWW \ тест \ SRC \ Адо \ FrontendBundle \ Helper \ 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

ответ

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, поскольку оба класса находятся в одном и том же пространстве имен.

Смежные вопросы