Php Symfony2-捆绑包的致命错误
我有错误[问题末尾的答案]Php Symfony2-捆绑包的致命错误,php,symfony,bundle,Php,Symfony,Bundle,我有错误[问题末尾的答案] Fatal error: Class 'symblog\Blogger\BlogBundle\SymblogBundle' not found in /var/www/Symfony/app/AppKernel.php on line 20 我提出了这个问题,但给出的解决方案对我没有帮助,因为我已经做了那里建议的事情。除了我在 app/config/routing.yml a 提前谢谢 我必须补充一点,在通过控制台注册捆绑包时,我发现了错误 The command
Fatal error: Class 'symblog\Blogger\BlogBundle\SymblogBundle' not found in
/var/www/Symfony/app/AppKernel.php on line 20
我提出了这个问题,但给出的解决方案对我没有帮助,因为我已经做了那里建议的事情。除了我在
app/config/routing.yml
a
提前谢谢
我必须补充一点,在通过控制台注册捆绑包时,我发现了错误
The command was not able to configure everything automatically.
You must do the following changes manually.
以及指示:
- Edit the app/autoload.php file and register the bundle
namespace at the top of the registerNamespaces() call:
'symblog\Blogger\BlogBundle' => '/var/www/Symfony/blog',
我跟着
AppKernel.php
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
//..
new symblog\Blogger\BlogBundle\SymblogBundle(),
);
/app/config/routing.yml
SymblogBundle:
resource: "@SymblogBundle/Resources/config/routing.php"
prefix: /
根据请求:/app/config/config.yml
imports:
- { resource: parameters.ini }
- { resource: security.yml }
framework:
#esi: ~
#translator: { fallback: %locale% }
secret: %secret%
charset: UTF-8
router: { resource: "%kernel.root_dir%/config/routing.yml" }
form: true
csrf_protection: true
validation: { enable_annotations: true }
templating: { engines: ['twig'] } #assets_version: SomeVersionScheme
session:
default_locale: %locale%
auto_start: true
# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
# java: /usr/bin/java
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%
jms_security_extra:
secure_controllers: true
secure_all_services: false
[编辑]在@Clamidity给出答案后,解决方案非常简单,即捆绑包通常位于src/Blogger/SymBlogBundle/BloggerSymBlogBundle.php
在使用控制台进行配置时,它询问了捆绑包的位置,默认值为/./src,但我改为/./blog。当然这是行不通的,Symfony找错了地方。我所做的是将/blog中的文件夹移动到/src,一切都很顺利。有不同的解决方案 清除app/cache/(prod | dev)文件夹。编辑Appkernel并自动加载后 致命错误:在中找不到类“symblog\Blogger\BlogBundle\SymblogBundle” /var/www/Symfony/app/AppKernel.php,第20行 以下是不同的问题:
'Avalanche' => __DIR__.'/../vendor/bundles',
这是注册命名空间的常用方法。在你的情况下,它必须是
'Symlog' => '/var/www/Symfony/blog',
在那里你可以看到你的自动加载不正确的名称空间是“Blogger”。有一些事情可能是这样的。我只要能想到什么就说什么
src/Blogger/SymBlogBundle/BloggerSymBlogBundle.php
(请注意,捆绑包名称遵循文件名约定)<?php
namespace Blogger\SymBlogBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class BloggerSymBlogBundle extends Bundle
{
}
(请注意,列出的文件夹是Blogger文件夹的父文件夹)new Blogger\SymBlogBundle\BloggerSymBlogBundle(),
*注意-您的资源和对具有上述配置的此捆绑包的引用将是
BloggerSymBlogBundle
因此,您的php路由将通过以下方式调用:
@BloggerSymBlogBundle/Resources/config/routing.php
你的班名对了吗?您确定它是“symbog\Blogger\BlogBundle\symbogbundle”而不是“symbog\Blogger\BlogBundle\symbogbundle”(注意大写字母“s”)?您的包的文件路径是什么?文件路径是/var/www/Symfony/blog
BloggerSymBlogBundle
@BloggerSymBlogBundle/Resources/config/routing.php