我创建了一个捆绑包并且正在另一个项目中工作。我复制了src文件夹中的Bundle文件夹,复制了一些segurity参数,在config.yml中导入了服务资源,并在AppKernel.php中添加了bundle作为
新的LoginBundle \ LoginBundle()
当我做了一个$ php bin/console doctrine:schema:validate
它返回这个错误
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "LoginBundle" from namespace "LoginBundle".
Did you forget a "use" statement for another namespace? in {project}\app\AppKernel.php:18
Stack trace:
#0 {project}\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php(450): AppKernel->registerBundles()
#1 {project}\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php(116): Symfony\Component\HttpKernel\Kernel->initializeBundles()
#2 {project}\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Console\Application.php(69): Symfony\Component\HttpKernel\Kernel->boot()
#3 {project}\vendor\symfony\symfony\src\Symfony\Component\Console\Application.php(125): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 {project}\bin\console(27): Symfo in {project}\app\AppKernel.php on line 18
编辑
AppKernel.php内容
<?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 LoginBundle\LoginBundle(),
new AppBundle\AppBundle(),
];
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');
}
}
这里是捆绑文件结构
这也是LoginBundle.php
namespace LoginBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class LoginBundle extends Bundle
{
}
我的解决方案是再次生成自动加载器
php composer.phar dump-autoload
希望它可以帮助某人
我想在routing.yml你必须添加
login:
resource: "@LoginBundle/Controller/"
type: annotation
prefix: /