2017-07-04 12 views
1

私はSymfonyで新しいプロジェクトを設定しようとしています。私は私自身のバンドルを追加したとき、私はこの奇妙なことが表示されています:AppKernel.php strange thing

PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "ContactBoxBundle" from namespace "ContactBoxBundle". Did you forget a "use" statement for another namespace? in /home/doro/projects/ContactBox/app/AppKernel.php:18 Stack trace:

0 /home/doro/projects/ContactBox/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(450): AppKernel->registerBundles()

1 /home/doro/projects/ContactBox/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php(116) :symfonyの\コンポーネント\ HttpKernel \ Kernel-> initializeBundles()

2 /home/doro/projects/ContactBox/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(137): symfonyの\コンポーネント\ HttpKernel \ Kernel->ブート()

3 /home/doro/projects/ContactBox/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php(124):symfonyの\ Bundle \ FrameworkBundle/Console/Application-> registerCommands()

4/home/doro/projects/ContactBox/vendor/symfony/symfony/src/Symfony /コンポーネント/ Console /アプリケーション/ home/doro/projects/ContactBox/app/

<?php 

use Symfony\Component\HttpKernel\Kernel; 
use Symfony\Component\Config\Loader\LoaderInterface; 

class AppKernel extends Kernel 
{ 
    public function registerBundles() 
    { 
     $bundles = [ 
      new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), 
      new Symfony\Bundle\SecurityBundle\SecurityBundle(), 
      new Symfony\Bundle\TwigBundle\TwigBundle(), 
      new Symfony\Bundle\MonologBundle\MonologBundle(), 
      new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), 
      new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), 
      new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), 
      new ContactBoxBundle\ContactBoxBundle(), 
     ]; 

     if (in_array($this->getEnvironment(), ['dev', 'test'], true)) { 
      $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); 
      $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 
      $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); 

      if ('dev' === $this->getEnvironment()) { 
       $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); 
       $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle(); 
      } 
     } 

     return $bundles; 
    } 

    public function getRootDir() 
    { 
     return __DIR__; 
    } 

    public function getCacheDir() 
    { 
     return dirname(__DIR__).'/var/cache/'.$this->getEnvironment(); 
    } 

    public function getLogDir() 
    { 
     return dirname(__DIR__).'/var/logs'; 
    } 

    public function registerContainerConfiguration(LoaderInterface $loader) 
    { 
     $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); 
    } 
} 

そして私は真剣にその私に起こったと私はsymfonyの新しいプロジェクトの前に作られたとき、その最初の時間を何が起こっているか見当がつかない:AppKernel.phpはライン上で18

私AppKernelはそのように見えます。何か案は?

composer.json

{ 
    "name": "doro/contactbox", 
    "license": "proprietary", 
    "type": "project", 
    "autoload": { 
     "psr-4": { 
      "": "src/" 
     }, 
     "classmap": [ 
      "app/AppKernel.php", 
      "app/AppCache.php" 
     ] 
    }, 
    "autoload-dev": { 
     "psr-4": { 
      "Tests\\": "tests/" 
     }, 
     "files": [ 
      "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" 
     ] 
    }, 
    "require": { 
     "php": ">=5.5.9", 
     "doctrine/doctrine-bundle": "^1.6", 
     "doctrine/orm": "^2.5", 
     "incenteev/composer-parameter-handler": "^2.0", 
     "sensio/distribution-bundle": "^5.0.19", 
     "sensio/framework-extra-bundle": "^3.0.2", 
     "symfony/monolog-bundle": "^3.1.0", 
     "symfony/polyfill-apcu": "^1.0", 
     "symfony/swiftmailer-bundle": "^2.3.10", 
     "symfony/symfony": "3.3.*", 
     "twig/twig": "^1.0||^2.0" 
    }, 
    "require-dev": { 
     "sensio/generator-bundle": "^3.0", 
     "symfony/phpunit-bridge": "^3.0" 
    }, 
    "scripts": { 
     "symfony-scripts": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 
     ], 
     "post-install-cmd": [ 
      "@symfony-scripts" 
     ], 
     "post-update-cmd": [ 
      "@symfony-scripts" 
     ] 
    }, 
    "config": { 
     "sort-packages": true 
    }, 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-bin-dir": "bin", 
     "symfony-var-dir": "var", 
     "symfony-web-dir": "web", 
     "symfony-tests-dir": "tests", 
     "symfony-assets-install": "relative", 
     "incenteev-parameters": { 
      "file": "app/config/parameters.yml" 
     }, 
     "branch-alias": null 
    } 
} 
+0

_ContactBoxBundle/ContactBoxBundle.php_の 'Bundle'を拡張するクラスがありますか? – kero

+0

はい、私はこのバンドルをコンソールコマンドを使って生成したので、技術的にうまくいくはずです – Doro

+0

おそらくそうは思われるが、自動ロードコンポーザーの問題かもしれません。 composer.jsonのautoloadセクションをあなたの質問に貼り付けてください。 – Cerad

答えて

0

ファイルにバンドルの名前空間とは何ですか:ContactBoxBundle/ContactBoxBundle.phpは? hereを参照すると、バンドル名AcmeTestBundleはネームスペースnamespace Acme\TestBundleにあります。 appKernelはnew Acme\TestBundle\AcmeTestBundle(),です。
多分あなたの問題です。

+0

私の名前空間は、パスのためのContactBoxBundleですsrc/ContactBoxBundle – Doro