我有一个Symfony 2.2项目只有一个名为“Xedef”的应用程序。在该app文件夹中,我创建了一个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中有什么变化吗?
答案 0 :(得分:1)
如果要自动加载类,则应将它们放在src
或vendor
目录中。如果要从其他目录自动加载类,也可以编辑composer.json
文件:
{
...
"autoload": {
"psr-0": {
...
"Xedef": "path/to/Xedef"
}
}
}