2013-04-27 4 views
0

У меня есть проект Symfony 2.2 с одним приложением под названием «Xedef». Внутри этой папки приложения я создал каталог Model с некоторыми классами в нем. Я надеялся, что я мог бы просто определить пространство имен для этого класса, как объявить пространство имен, как:Класс не найден в Symfony 2.2

namespace Xedef\Model; 

class MyClass 
{ 
    // ... 
} 

И затем использовать их, скажем, мой Controler просто «с помощью», что пространства имен, как:

use Xedef\Model\MyClass; 

class HomeController extends Controller 
{ 
    public function welcomeAction() 
    { 
     $myObj = new MyClass(); 
    } 
} 

Но мне не повезло. Это приводит к следующей ошибке:

FatalErrorException: Error: Class 'Xedef\Model\MyClass' not found in /gitRepo/XedefApp/src/Xedef/MainBundle/Controller/HomeController.php

Как ни странно, я сделал это то же самое в Sf 2.1, и я не имел никаких проблем. Что-то изменилось в 2.2?

+1

Где находится модель? В каталоге 'app'? ... это автозагрузка, только если она находится в каталоге' src'. – 1ed

ответ

1

Если вы хотите автозагрузить классы, вы должны поместить их в каталог src или vendor. Вы также можете отредактировать файл composer.json, если вы хотите автозагружать классы из другого каталога:

{ 
    ... 
    "autoload": { 
     "psr-0": { 
      ... 
      "Xedef": "path/to/Xedef" 
     } 
    } 
} 
Смежные вопросы