繁体   English   中英

Symfony4新捆绑自动加载

[英]Symfony4 new bundle autoloading

我想用SF4创建一个新的可重用捆绑包。 我按照文档进行了操作,但是如果我在“src”目录中添加我的新包,则与App命名空间和composer自动加载存在冲突:

"autoload": {
    "psr-4": {
        "App\\": "src/",
        "Acme\\TestBundle\\": "src/Acme/TestBundle/"
    }
},

然后,我收到此错误:

PHP致命错误:未捕获的Symfony \\ Component \\ Debug \\ Exception \\ ClassNotFoundException:尝试从命名空间“Acme \\ TestBundle”加载类“AcmeTestBundle”。

我认为这是因为PSR-4自动加载器加载了具有错误命名空间的文件(App / Acme / TestBundle / AcmeTestBundle.php)。

有没有办法解决这个问题? 我也尝试为我的应用程序创建另一个包,但由于Kernel.php文件而崩溃...

此回退目录方法也不起作用:

"psr-4": {
    "": "src/"
}

要帮助PSR-4 Autoloader将Acme作为捆绑包加载,您必须从App服务目录中排除其目录:

file:config / services.yaml

services:
        ...
        App\:
        resource: '../src/*'
        # you can exclude directories or files
        # but if a service is unused, it's removed anyway
        **exclude: '../src/{Entity,Migrations,Repository,Acme}'**

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM