forked from trikoder/oauth2-bundle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TrikoderOAuth2Bundle.php
59 lines (51 loc) · 1.83 KB
/
TrikoderOAuth2Bundle.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
declare(strict_types=1);
namespace Trikoder\Bundle\OAuth2Bundle;
use Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass;
use Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
use Trikoder\Bundle\OAuth2Bundle\DependencyInjection\Security\OAuth2Factory;
use Trikoder\Bundle\OAuth2Bundle\DependencyInjection\TrikoderOAuth2Extension;
final class TrikoderOAuth2Bundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function build(ContainerBuilder $container)
{
parent::build($container);
$this->configureDoctrineExtension($container);
$this->configureSecurityExtension($container);
}
/**
* {@inheritdoc}
*/
public function getContainerExtension()
{
return new TrikoderOAuth2Extension();
}
private function configureSecurityExtension(ContainerBuilder $container): void
{
/** @var SecurityExtension $extension */
$extension = $container->getExtension('security');
$extension->addSecurityListenerFactory(new OAuth2Factory());
}
private function configureDoctrineExtension(ContainerBuilder $container): void
{
$container->addCompilerPass(
DoctrineOrmMappingsPass::createXmlMappingDriver(
[
realpath(__DIR__ . '/Resources/config/doctrine/model') => 'Trikoder\Bundle\OAuth2Bundle\Model',
],
[
'trikoder.oauth2.persistence.doctrine.manager',
],
'trikoder.oauth2.persistence.doctrine.enabled',
[
'TrikoderOAuth2Bundle' => 'Trikoder\Bundle\OAuth2Bundle\Model',
]
)
);
}
}