Skip to content

Instantly share code, notes, and snippets.

@zebba
Created January 24, 2015 10:46
Show Gist options
  • Save zebba/ea9c131c44c3ef515805 to your computer and use it in GitHub Desktop.
Save zebba/ea9c131c44c3ef515805 to your computer and use it in GitHub Desktop.
<?php
namespace Acme\FooBundle;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class FooDavBundle extends Bundle
{
/**
* {@inherit_doc}
*/
public function build(ContainerBuilder $container)
{
parent::build($container);
// Doctrine mappings
$modelDir = realpath(__DIR__ .'/Resources/config/Doctrine/model');
$namespaces = array(
$modelDir => 'Acme\FooBundle\Entity',
);
$this->addOrmMappingCompilerPass($container, $namespaces);
$this->addMongoMappingCompilerPass($container, $namespaces);
$this->addCouchMappingCompilerPass($container, $namespaces);
$this->addPHPCrMappingCompilerPass($container, $namespaces);
}
/**
* @param ContainerBuilder $container
* @param array $namespaces
* @param array $managerParameters
* @param bool $enabledParameter
* @param array $aliasMap
*/
private function addOrmMappingCompilerPass(ContainerBuilder $container,
array $namespaces,
array $managerParameters = array(),
$enabledParameter = false,
array $aliasMap = array())
{
$pass = 'Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass';
if (! class_exists($pass)) { return; }
$container->addCompilerPass(
\Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass::createXmlMappingDriver(
$namespaces,
$managerParameters,
$enabledParameter,
$aliasMap
));
}
/**
* @param ContainerBuilder $container
* @param array $namespaces
* @param array $managerParameters
* @param bool $enabledParameter
* @param array $aliasMap
*/
private function addMongoMappingCompilerPass(ContainerBuilder $container,
array $namespaces,
array $managerParameters = array(),
$enabledParameter = false,
array $aliasMap = array())
{
$pass = 'Doctrine\Bundle\MongoDBBundle\DependencyInjection\Compiler\DoctrineMongoDBMappingsPass';
if (! class_exists($pass)) { return; }
$container->addCompilerPass(
\Doctrine\Bundle\MongoDBBundle\DependencyInjection\Compiler\DoctrineMongoDBMappingsPass::createXmlMappingDriver(
$namespaces,
$managerParameters,
$enabledParameter,
$aliasMap
));
}
/**
* @param ContainerBuilder $container
* @param array $namespaces
* @param array $managerParameters
* @param bool $enabledParameter
* @param array $aliasMap
*/
private function addCouchMappingCompilerPass(ContainerBuilder $container,
array $namespaces,
array $managerParameters = array(),
$enabledParameter = false,
array $aliasMap = array())
{
$pass = 'Doctrine\Bundle\CouchDBBundle\DependencyInjection\Compiler\DoctrineCouchDBMappingsPass';
if (! class_exists($pass)) { return; }
$container->addCompilerPass(
\Doctrine\Bundle\CouchDBBundle\DependencyInjection\Compiler\DoctrineCouchDBMappingsPass::createXmlMappingDriver(
$namespaces,
$managerParameters,
$enabledParameter,
$aliasMap
));
}
/**
* @param ContainerBuilder $container
* @param array $namespaces
* @param array $managerParameters
* @param bool $enabledParameter
* @param array $aliasMap
*/
private function addPHPCrMappingCompilerPass(ContainerBuilder $container,
array $namespaces,
array $managerParameters = array(),
$enabledParameter = false,
array $aliasMap = array())
{
$pass = 'Doctrine\Bundle\PHPCRBundle\DependencyInjection\Compiler\DoctrinePhpcrMappingsPass';
if (! class_exists($pass)) { return; }
$container->addCompilerPass(
\Doctrine\Bundle\PHPCRBundle\DependencyInjection\Compiler\DoctrinePhpcrMappingsPass::createXmlMappingDriver(
$namespaces,
$managerParameters,
$enabledParameter,
$aliasMap
));
}
}
@velikanov
Copy link

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment