Symfony 3:为什么在使用自定义命名空间生成捆绑包后会出现 ClassNotFoundException?

DDD
发布: 2024-11-27 03:55:11
原创
475 人浏览过

Symfony 3: Why Get a ClassNotFoundException After Generating a Bundle with a Custom Namespace?

创建 Bundle 后出现 Symfony3 类未找到异常

当使用generate:bundle命令在 Symfony3 中创建新的bundle时,您可能会遇到新创建的捆绑包出现 ClassNotFoundException。当在捆绑包创建过程中引入自定义命名空间时,就会特别出现此问题。

根本原因在于generate:bundle命令忽略更新composer.json的自动加载部分以包含新的命名空间。因此,当服务器重新启动时,自动加载器无法找到包类。

要解决此问题,请手动编辑composer.json并在 psr-4 部分添加以下代码:

"Paul\": "src/Paul"
登录后复制

这会通知自动加载器在 src 目录中的位置找到 Paul 命名空间。

更新composer.json后,运行以下命令刷新自动加载器并重新启动服务器(如有必要):

composer dumpautoload
登录后复制

完成这些步骤后,ClassNotFoundException 应该得到解决,并且可以按预期访问包。

附加点:

  • 此问题在 Symfony 3.2 更改默认值后开始出现psr-4 命名空间从 "" 映射到 AppBundle\。
  • 如果需要,您可以通过修改composer.json 恢复到旧的命名空间映射。
  • 有关更多详细信息,请参阅 GitHub问题:https://github.com/symfony/symfony-standard/issues/1098

以上是Symfony 3:为什么在使用自定义命名空间生成捆绑包后会出现 ClassNotFoundException?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板