首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony 3一个文件应用程序和获取原理

Symfony 3一个文件应用程序和获取原理
EN

Stack Overflow用户
提问于 2017-07-13 18:29:57
回答 1查看 171关注 0票数 1

Symfony 3.3,Doctrine 2一个文件应用程序(微内核)我想知道我是否可以在AppKernel类中使用实体菜单。

index.php

代码语言:javascript
复制
...

require __DIR__.'/vendor/autoload.php';

class AppKernel extends Kernel
{
    use MicroKernelTrait;

    public function registerBundles()
    {
        return [
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Doctrine\Bundle\DoctrineBundle\DoctrineBundle()
        ];
    }

    protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader)
    {
        $c->loadFromExtension(
            'framework', [
                ...
            ],
            'doctrine', [
                ...
                ]
            ]
        );
    }

    protected function configureRoutes(RouteCollectionBuilder $routes)
    {
        $routes->add('/test', 'kernel:testAction', 'test');
    }

    public function testAction()
    {
        $em = $this->container->get('doctrine');

        $response = new Response(
            '<h1>TEST</h2>',
            Response::HTTP_OK,
            ['content-type' => 'text/html']
        );

        return $response;
    }

}

$kernel = new AppKernel('dev', true);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

我想在testAction中使用实体管理器,但我不知道如何将规则注册为服务。我应该使用configureContainer方法吗?有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 21:21:48

因为我认为问题出在configureContainer()方法中。对于原理,我们需要再次使用loadFromExtension()方法。在那之后,我们可以在容器中看到原理。

代码语言:javascript
复制
protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader)
    {
         $c->loadFromExtension('framework', [
               'secret' => 'S0ME_SECRET'
         ]);

         $c->loadFromExtension('doctrine', [
                'dbal' => [
                  'driver' => 'pdo_mysql',
                  'host' => '127.0.0.1',
                  'port' => null,
                  'dbname' => 'dbname',
                  'user' => 'root',
                  'password' => '',
                  'charset' => 'UTF8'
               ],
               'orm' => [
                  'auto_generate_proxy_classes' => false,
                  'auto_mapping' => true,
                  ...
               ]
         ]);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45078025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档