Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
digitalascetic/notifications / DependencyInjection / DigitalAsceticNotificationsExtension.php
Size: Mime:
<?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);

        }
    }
}