如果路径与文件夹结构不匹配,Symfony2类加载器将不工作?
这是我目前的结构 插件/ |---init.php |---/插件1/lib/ |---/插件2/lib/ |---/西蒙尼/ 我的代码如下所示:如果路径与文件夹结构不匹配,Symfony2类加载器将不工作?,symfony,classloader,Symfony,Classloader,这是我目前的结构 插件/ |---init.php |---/插件1/lib/ |---/插件2/lib/ |---/西蒙尼/ 我的代码如下所示: set_include_path(DIR_FS_CATALOG.'plugins'); require_once(DIR_FS_CATALOG.'plugins/Symfony/Component/ClassLoader/UniversalClassLoader.php'); // load the class loader and depend
set_include_path(DIR_FS_CATALOG.'plugins');
require_once(DIR_FS_CATALOG.'plugins/Symfony/Component/ClassLoader/UniversalClassLoader.php');
// load the class loader and dependency injection component
$loader = new Symfony\Component\ClassLoader\UniversalClassLoader();
$loader->registerNamespaces(array('plugins\\plugin1' => __DIR__.'/plugins/plugin1/lib', 'plugins' => DIR_FS_CATALOG.'plugins'));
$loader->registerNamespace('Symfony',__DIR__.'/plugins');
$loader->register();
use plugins\plugin1\MyClass;
MyClass::init();
致命错误:找不到类“plugins\plugin1\MyClass”
我想知道我做错了什么?任何帮助都将不胜感激。Symfony2类加载器符合PSR-0(),这意味着您的名称空间必须反映您的文件系统结构。上有一个示例:无法在此发布代码,但是,如果您转到链接并查看带有doctrine namespace的示例,您将看到我的意思,我想知道这是否意味着您可以使用不同于文件结构的命名空间?假设您讨论的是最后一个代码块,这是有效的,因为它们告诉类装入器在哪里查找类文件。因此,如果您的
MyClass
位于/plugin1/lib
目录中,则必须显式注册此命名空间。但是不能在同一名称空间中注册/plugin1
和/plugin1/lib
中的类。