供应商捆绑无法加载

时间:2015-11-05 21:24:25

标签: php symfony composer-php

我搜索了几个小时来解决我的问题,但现在我不知道该怎么检查..

我为作曲家创建了一个新项目:https://github.com/Gcob/esvit-ng-table-for-symfony

一切都很好,直到它来到appKernel.php,我声明我刚刚从作曲家包中新下载了这样的代码:new Gcob\NgTableBundle\GcobNgTableBundle(),但是我收到了一条错误消息:

ClassNotFoundException in AppKernel.php line 23:

Attempted to load class "GcobNgTableBundle" from namespace "Gcob\NgTableBundle".
Did you forget a "use" statement for another namespace?

我不知道appKernel如何找到它的包,但我知道命名空间很重要,文件名也是如此,所以我的文件GcobNgTableBundle.php有名称空间namespace Gcob\NgTableBundle;和类声明应该是class GcobNgTableBundle extends Bundle

是否有任何地方我应该告诉内核供应商包的文件GcobNgTableBundle.php是否存在?如果有人有任何想法,请告诉我,但不要忘记我尝试了很多东西(第一次问问题o_O)

2 个答案:

答案 0 :(得分:0)

您需要更改作曲家并添加自动加载部分。 没有它,名称空间可能会失败。有关详细信息,请查看documentation。 它必须与此类似:

"autoload": {
    "psr-4": { "Symfony\\Bundle\\EsvitNgTableBundle\\": "" }
},

例如,检查this one

答案 1 :(得分:0)

经过大量的浪费时间,我明白了:P mim的答案是朝着好的方向发展的!我学习了here作曲家命名空间的工作原理。 Symfony中的appKernel仅加载作曲文件"vendor/composer/autoload_namespaces.php"以加载FAKE名称空间xD。