Repository URL to install this package:
|
Version:
6.2.6 ▾
|
<?php
namespace DigitalAscetic\NotificationsBundle\DependencyInjection;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class DigitalAsceticNotificationsExtension extends Extension implements PrependExtensionInterface
{
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
if ($config && $config['enabled']) {
$loader = new XmlFileLoader(
$container,
new FileLocator(__DIR__ . '/../../config')
);
$loader->load('services.xml');
}
}
/**
* Allow an extension to prepend the extension configurations.
*
* @param ContainerBuilder $container
*/
public function prepend(ContainerBuilder $container)
{
$configs = $container->getExtensionConfig($this->getAlias());
$config = $this->processConfiguration(new Configuration(), $configs);
if ($config['enabled']) {
$doctrineConfig = array(
'orm' => array(
'mappings' => array(
'notifications' => array(
'type' => 'attribute',
'is_bundle' => false,
'prefix' => 'DigitalAscetic\NotificationsBundle\Entity',
'dir' => $config['mapping_dir'],
'alias' => 'DigitalAsceticNotifications',
),
)
),
);
$container->prependExtensionConfig('doctrine', $doctrineConfig);
}
}
}