Symfony 3.3,Doctrine 2一个文件应用程序(微内核)我想知道我是否可以在AppKernel类中使用实体菜单。
index.php
...
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方法吗?有人能帮上忙吗?
发布于 2017-07-13 21:21:48
因为我认为问题出在configureContainer()方法中。对于原理,我们需要再次使用loadFromExtension()方法。在那之后,我们可以在容器中看到原理。
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,
...
]
]);
}https://stackoverflow.com/questions/45078025
复制相似问题