我碰巧得到了创作的所有symfony问题......
我想创建一个新项目。
我复制' symfony2 '文件夹,然后将其重命名:
php app/console generate:bundle
它说:
Generating the bundle code: OK
Checking that the bundle is autoloaded: FAILED
Confirm automatic update of your Kernel [yes]?
Enabling the bundle inside the Kernel: OK
Confirm automatic update of the Routing [yes]?
Importing the bundle routing resource: FAILED
The command was not able to configure everything automatically.
You must do the following changes manually.
- Edit the composer.json file and register the bundle
namespace in the "autoload" section:
Bundle MddevPsavBundle is already imported.
这是为什么?当我上次没有遇到那个问题时,我做了同样的命令?
我该如何解决这个问题呢?我应该在composer.json
文件中添加什么?
我尝试了一些东西但是得到了:
Fatal error: Class 'Mddev\PsavBundle\MddevPsavBundle' not found in
/var/www/projetQ/app/AppKernel.php on line 22
答案 0 :(得分:10)
如果您遇到问题:
The command was not able to configure everything automatically.
You must do the following changes manually.
然后告诉你:
- Edit the composer.json file and register the bundle
namespace in the "autoload" section:
假设您已正确关注bundle name conventions,则需要:
将新捆绑包添加到composer.json文件
"autoload": {
"psr-0": {
"currentbundle\\": "src/",
"YOURNEWBUNDLE\\": "src/",
}
}
然后您需要再次在composer上运行
composer -n install --dev
然后您应该自动加载两个捆绑包
答案 1 :(得分:2)
似乎您的包名称空间不符合约定:http://symfony.com/doc/current/cookbook/bundles/best_practices.html#bundle-name
您应该使用Mddev\Bundle\MddevPsavBundle
或Mddev\MddevPsavBundle
作为捆绑名称空间。
答案 2 :(得分:2)
我刚才遇到了这个问题。 app / console generate:bundle失败了自动加载检查并且没有创建src目录。我习惯于采用默认答案,我没有注意到src目录指向缓存目录。
我输入正确的路径,一切都很好。
我觉得熟悉确实会引起蔑视。
答案 3 :(得分:0)
我收到错误,因为在运行generate:bundle之前我没有安装composer。
一旦我安装了composer,再次尝试该命令(在删除创建的bundle文件和app / AppKernal.php中的代码之后)它立即就可以了
答案 4 :(得分:0)
当从命令行生成捆绑包时,生成器不会考虑捆绑包所在的目录,这可能会在向捆绑包添加供应商前缀时导致问题,您需要确保两件事情才能实现< / p>
AppKernel.php
&gt;中的命名空间registerBundles()
composer update
只是为了确保正确创建自动加载器例如: - UserBundle.php中的namespace Acme\UserBundle;
|-----|
| src
| |
| Acme
| |
| UserBundle
| .
| .
| UserBundle.php
内部AppKernel.php
有new Acme\UserBundle\UserBundle(),
答案 5 :(得分:0)
要修复此错误,必须在composer.json
此代码中添加:
"autoload": {
"psr-4": { "": "src/" },
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
始终所有捆绑包都在/src
此更改是我在Symfony 3.3.x
此致
答案 6 :(得分:0)
在自动加载中更改composer.json
"autoload": {
"psr-4": {
"Composer\\CaBundle\\": "src"
}
},
添加运行命令composer dumpautoload