我搜索了几个小时来解决我的问题,但现在我不知道该怎么检查..
我为作曲家创建了一个新项目: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)
答案 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。