ClassNotFoundException-如何在symfony(2.4.4)中注册自定义命名空间
我在下面有一个新的bundleClassNotFoundException-如何在symfony(2.4.4)中注册自定义命名空间,symfony,autoload,psr-0,Symfony,Autoload,Psr 0,我在下面有一个新的bundleMyBundle src/MyVendor/Bundle/MyBundle/ 在默认控制器中,我希望使用classMyClass,它位于名为MyVendor\MyComponent的命名空间中 它位于src/MyVendor/Component/MyComponent/src/MyVendor/MyComponent/MyClass.php下 我已经试过了 use Symfony\Component\ClassLoader\UniversalClassLoader;
MyBundle
src/MyVendor/Bundle/MyBundle/
在默认控制器中,我希望使用classMyClass
,它位于名为MyVendor\MyComponent的命名空间中
它位于src/MyVendor/Component/MyComponent/src/MyVendor/MyComponent/MyClass.php下
我已经试过了
use Symfony\Component\ClassLoader\UniversalClassLoader;
$myLoader = new UniversalClassLoader();
$myLoader->registerNamespace(
'MyVendor\\MyComponent\\',
__DIR__.'/../src/MyVendor/Component/MyComponent/src'
);
在app/autoload.php
中,但我仍然收到ClassNotFoundException
错误
要么我错过了一些微妙的东西,要么我的想法完全错了(错误的psr-0目录结构),或者这应该仅仅通过作曲家的自动加载来完成,例如
"autoload": {
"psr-0": {
"MyVendor\\MyComponent\\":
"src/MyVendor/Component/MyComponent/src"
}
}
及
不管是哪种情况,我都非常感谢您的帮助
谢谢好的,我想我已经弄明白了:
registerNamespace
名称空间中不应包含尾随\\
我需要添加$myLoad->register()代码>
所以整个事情看起来像
use Symfony\Component\ClassLoader\UniversalClassLoader;
$myLoader = new UniversalClassLoader();
$myLoader->registerNamespace(
'MyVendor\\MyComponent',
__DIR__.'/../src/MyVendor/Component/MyComponent/src'
);
$myLoader->register();
我仍然想看看如何使用composer
和dump autoload
use Symfony\Component\ClassLoader\UniversalClassLoader;
$myLoader = new UniversalClassLoader();
$myLoader->registerNamespace(
'MyVendor\\MyComponent',
__DIR__.'/../src/MyVendor/Component/MyComponent/src'
);
$myLoader->register();