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行

以下是不同的问题:

  • 查看Bundle文件夹中的SymblogBundle.php,并查看它们使用的名称空间。也许它真的像@kuba说的那样是大写的(“S”)

  • 该类文件不在该文件夹中,或者您对解释器可以加载该文件的文件夹没有权限

  • 我认为你的autoload.php是不正确的

    'Avalanche'        => __DIR__.'/../vendor/bundles',
    
    这是注册命名空间的常用方法。在你的情况下,它必须是

    'Symlog' => '/var/www/Symfony/blog',
    
  • 我希望它是正确的


    在那里你可以看到你的自动加载不正确的名称空间是“Blogger”。

    有一些事情可能是这样的。我只要能想到什么就说什么

  • 通常,捆绑包放在src文件夹中。因此,包的路径应该如下所示

    src/Blogger/SymBlogBundle/BloggerSymBlogBundle.php
    
    (请注意,捆绑包名称遵循文件名约定)

  • 在BloggerSymBlogBundle.php中,请确保您具有类似于以下内容的内容:

    <?php
    
    namespace Blogger\SymBlogBundle;
    
    use Symfony\Component\HttpKernel\Bundle\Bundle;
    
    class BloggerSymBlogBundle extends Bundle
    { 
    }
    
    (请注意,列出的文件夹是Blogger文件夹的父文件夹)

  • 现在,在AppKernel.php中,根据您设置并注册的名称空间注册捆绑包:

    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