From 42a953540d70e5a52d645f089f30cfee1f7c426f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Mare=C5=A1?= Date: Mon, 15 Feb 2016 15:38:21 +0100 Subject: [PATCH] Added support for user defined functions. --- src/DI/DoctrineExtension.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/DI/DoctrineExtension.php b/src/DI/DoctrineExtension.php index 448ccbe..40c2cb0 100644 --- a/src/DI/DoctrineExtension.php +++ b/src/DI/DoctrineExtension.php @@ -56,7 +56,8 @@ class DoctrineExtension extends CompilerExtension 'proxyDir' => '%tempDir%/cache/proxies', 'ownEventManager' => FALSE, 'targetEntityMappings' => [], - 'metadata' => [] + 'metadata' => [], + 'functions' => [] ]; private $entitySources = []; @@ -130,7 +131,7 @@ public function beforeCompile() $cache = $this->getCache($name, $builder); - $builder->getDefinition($name . ".config") + $configService = $builder->getDefinition($name . ".config") ->setFactory('\Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration', [ array_values($this->entitySources), $config['debug'], @@ -141,6 +142,17 @@ public function beforeCompile() ->addSetup('setNamingStrategy', ['@' . $name . '.naming']); + foreach ($config['functions'] as $functionName => $function) { + $configService->addSetup( + 'addCustomStringFunction', + [ + $functionName, + $function + ] + ); + } + + foreach ($this->classMappings as $source => $target) { $builder->getDefinition($name . '.resolver') ->addSetup('addResolveTargetEntity', [