2017-06-12 47 views
1

我有一个新的symfony项目。默认情况下,它包含在供应商下移动默认AppBundle

-/AppBundle 
-AppBundle.php 
--/Controller 
--/Default Controller 

因为我将有更多的包,我想这是一个名为MyProject的,我有我的ApiBundle VENDORNAME下。

我试着手动移动AppBundle,然后更改文件,yml文件和AppKernel中的命名空间。但我仍然得到一个错误

Expected to find class "AppBundle\AppBundle" in file "/Applications/MAMP/htdocs/healthy-living/src/HealthyLiving/AppBundle/AppBundle.php" while importing services from resource "../../src/HealthyLiving/AppBundle/*", but it was not found! Check the namespace prefix used with the resource.' in /Applications/MAMP/htdocs/healthy-living/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/FileLoader.php:133 

是否有任何控制台命令这样做,如果不是什么应该是移动它的过程。

在此先感谢

回答

1

有没有控制台命令或程序这样做,因为这不是什么vendor文件夹是专为。 vendor文件夹旨在存储3rd-party代码,因此保留您正在开发的自己的软件包中的vendor不是一个好主意。

因为我将有更多的束

没有理由,你不能让一个以上的包来src文件夹内。实际上,当Symfony引入Bundle系统时,src文件夹中包含很多捆绑包是很常见的。

(注意:vendor文件夹几乎总是加入到.gitignore - 这是因为我以前写的),明确的问题是什么之后

编辑: 它看起来像命令生成捆有/有一些与创建束问题,而没有供应商文件夹:

Issue

Pull request

我不知道你使用的是哪个版本的Symfony,但是无论哪种方式手动创建包总是一个好主意,它也解决了你的问题。 (您可以在没有供应商名称的情况下创建它)

+0

对不起,误会。当我试图添加没有父母的软件包时,它询问vendorname。 命名空间必须包含供应商命名空间(例如“VendorName \ ApiBundle”而不是简单的“ApiBundle”)。 如果您指定了供应商名称空间,是否忘记用引号(init:bundle“Acme \ BlogBu​​ndle”)将它包围? - 这是供应商名称,我正在参考 – Giedrius

+0

默认情况下AppBundle在那里。当我在控制台中生成ApiBundle时,它被要求置于VendorName之下,例如HealthyLiving,我无法将其与AppBundle放在同一个目录中。所以我想移动AppBundle的HealthyLiving,父文件夹,如果你可以称之为。可能吗 ? – Giedrius

+0

检查我的编辑。 –

0

您可以将API包上传到存储库(Github,Gitlab,Bitbucket等),然后将其作为外部依赖项与Composer一起导入。

+0

我使用控制台命令生成了ApiBundle,并将它放在了VendorName - HealthyLiving下,所以我没有这个问题。这是默认的AppBundle,必须在健康生活下移动 – Giedrius

0

由于移动过于复杂,因为必须更改配置文件,所以我决定做一个解决方法并将其删除,然后通过控制台在同一父级下进行安装。奇迹般有效。 Althoug可能是这方面的一个方法。