首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包创建后的Symfony3 ClassNotFoundException

包创建后的Symfony3 ClassNotFoundException
EN

Stack Overflow用户
提问于 2017-07-06 10:52:20
回答 4查看 18.7K关注 0票数 34

我想在Symfony启动一个新的3.3项目,并像往常一样开始:

1.)创建新项目:symfony new ArtProject

2.)创建一个新的包:php app/console generate:bundle (Paul/ArtBundle,yml,src/)

然后我运行本地服务器,当我打开127.0.0.1:8000时,我得到了一条漂亮的消息:

(1/1) ClassNotFoundException 试图从命名空间"Paul\ArtBundle“加载类"PaulArtBundle”。您忘了另一个名称空间的"use“语句了吗?在AppKernel.php中(第19行)

这很奇怪,我还没弄清楚为什么会发生这种事。在创建捆绑之前,没有出现任何错误;我看到了symfony的典型开始页面。

代码语言:javascript
运行
复制
public function registerBundles()
{
    $bundles = [
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        ......
        new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
        new AppBundle\AppBundle(),
        new Paul\ArtBundle\PaulArtBundle(),
    ];
}
代码语言:javascript
运行
复制
<?php

namespace Paul\ArtBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class PaulArtBundle extends Bundle
{
}

知道那里发生了什么事吗?我没有改变任何事情,我只运行了这些命令。

EN

Stack Overflow用户

发布于 2017-08-03 08:58:23

如果您生成了一个用于在多个项目中使用的包(带有自己的命名空间),则需要将其添加到composer.json中,如下所示:

让我们假设您的包名是带有命名空间CompanyFooBundleCompany\Bundle\FooBundle,那么composer autoload部分应该如下所示:

代码语言:javascript
运行
复制
...
"autoload": {
    "psr-4": {
        "Company\\Bundle\\FooBundle\\": "src/Company/Bundle/FooBundle"
    },
    "classmap": [
        "app/AppKernel.php",
        "app/AppCache.php"
    ]
},
...
票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44946911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档