Symfony2 - Fatal error with Bundles

前端 未结 2 2046
名媛妹妹
名媛妹妹 2021-01-18 07:37

I\'ve got the error [Solution at the end of the question]

Fatal error: Class \'symblog\\Blogger\\BlogBundle\\SymblogBundle\' not found in
/var/www/Symfony/ap         


        
相关标签:
2条回答
  • 2021-01-18 08:07

    There are different solution.

    Clear the app/cache/(prod|dev) folder. When you have edited the Appkernel and autoload.

    Fatal error: Class 'symblog\Blogger\BlogBundle\SymblogBundle' not found in /var/www/Symfony/app/AppKernel.php on line 20

    Here are now different Problems:

    1. Look to the SymblogBundle.php in the Bundle Folder and look which namespace they use. Perhaps its really an uppercase ("S") like @kuba said.

    2. The Class file is not in the folder or you have no rights to the folder that the interpreter can load the file.

    3. I think your autoload.php is not correct.

      'Avalanche'        => __DIR__.'/../vendor/bundles',
      

      This is the common way to register an Namespace. In your case it have to be

      'Symlog' => '/var/www/Symfony/blog',
      

    Here are the instructions from the "BloggerBundle" I hope its the correct one

    There you can see the your autoload its not correct the Namespace is "Blogger".

    0 讨论(0)
  • 2021-01-18 08:21

    There are a few things that it could be. I'll just cover anything I can think of.

    1. Generally bundles are placed in the src folder. So the path to your bundle should look like this.

      src/Blogger/SymBlogBundle/BloggerSymBlogBundle.php
      

      (Notice that the bundle name follows the file name convention)

    2. Inside of the BloggerSymBlogBundle.php make sure you have something similar to the following:

      <?php
      
      namespace Blogger\SymBlogBundle;
      
      use Symfony\Component\HttpKernel\Bundle\Bundle;
      
      class BloggerSymBlogBundle extends Bundle
      { 
      }
      

      (Notice that the same name convention is also followed here)

    3. In your autoload.php the namespace that should be registered is the "Blogger" part of the name/path to your bundle. This is because the bundle itself resides in the Blogger folder:

      'Blogger' => __DIR__.'/../src',
      

      (Notice that the folder listed is the parent of the Blogger folder)

    4. Now in the AppKernel.php register the bundle according the namespace your set up and registered:

      new Blogger\SymBlogBundle\BloggerSymBlogBundle(),
      

      *Note - Your resources and references to this bundle with the above configuration would be

      BloggerSymBlogBundle
      

      so your php routing would be called by using:

      @BloggerSymBlogBundle/Resources/config/routing.php
      
    0 讨论(0)
提交回复
热议问题