Класс не найден в Symfony 2.2

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

namespace Xedef\Model;

class MyClass
{
    // ...
}

А затем используйте их, скажем, из моего контроллера, просто «используя» эти пространства имен как:

use Xedef\Model\MyClass;

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

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

FatalErrorException: Ошибка: класс «Xedef\Model\MyClass» не найден в /gitRepo/XedefApp/src/Xedef/MainBundle/Controller/HomeController.php

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


person user2327888    schedule 27.04.2013    source источник
comment
Где класс моделей? В каталоге app?... он загружается автоматически, только если находится в каталоге src.   -  person 1ed    schedule 28.04.2013


Ответы (1)


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

{
    ...
    "autoload": {
        "psr-0": {
            ...
            "Xedef": "path/to/Xedef"
        }
    }
}
person Wouter J    schedule 28.04.2013