2013-04-27 65 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

奇怪的是,我在SF2.1中做了同样的事情,我没有任何麻烦。 2.2有什么改变吗?

+1

模型类在哪里?在'app'目录中?只有当它位于src'目录下时才会自动加载。 – 1ed 2013-04-28 00:04:38

回答

1

如果您想自动载入班级,您应该将它们放在srcvendor目录中。如果要自动载入其他目录中的类,还可以编辑composer.json文件:

{ 
    ... 
    "autoload": { 
     "psr-0": { 
      ... 
      "Xedef": "path/to/Xedef" 
     } 
    } 
}