Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 216dc0f

Browse filesBrowse files
jwagefabpot
authored andcommitted
[DoctrineBundle, DoctrineMongoDBBundle] Making sure proxy directory is created when DI container is being built
1 parent e33894a commit 216dc0f
Copy full SHA for 216dc0f

File tree

Expand file treeCollapse file tree

4 files changed

+38
-11
lines changed
Filter options
Expand file treeCollapse file tree

4 files changed

+38
-11
lines changed

‎src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/DoctrineBundle/DependencyInjection/DoctrineExtension.php
+17-7Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,20 @@
2626
*/
2727
class DoctrineExtension extends Extension
2828
{
29-
protected $resources;
29+
protected $resources = array(
30+
'dbal' => 'dbal.xml',
31+
'orm' => 'orm.xml',
32+
);
3033
protected $alias;
3134
protected $bundleDirs;
3235
protected $bundles;
36+
protected $kernelCacheDir;
3337

34-
public function __construct(array $bundleDirs, array $bundles)
38+
public function __construct(array $bundleDirs, array $bundles, $kernelCacheDir)
3539
{
36-
$this->resources = array(
37-
'dbal' => 'dbal.xml',
38-
'orm' => 'orm.xml',
39-
);
4040
$this->bundleDirs = $bundleDirs;
4141
$this->bundles = $bundles;
42+
$this->kernelCacheDir = $kernelCacheDir;
4243
}
4344

4445
public function setAlias($alias)
@@ -212,12 +213,21 @@ public function ormLoad($config, ContainerBuilder $container)
212213

213214
$container->setDefinition('doctrine.orm.metadata_driver', $mappingDriverDef);
214215

216+
$proxyCacheDir = $this->kernelCacheDir . '/doctrine/orm/Proxies';
217+
if (!is_dir($proxyCacheDir)) {
218+
if (false === @mkdir($proxyCacheDir, 0777, true)) {
219+
die(sprintf('Unable to create the Doctrine Proxy directory (%s)', dirname($proxyCacheDir)));
220+
}
221+
} elseif (!is_writable($proxyCacheDir)) {
222+
die(sprintf('Unable to write in the Doctrine Proxy directory (%s)', $proxyCacheDir));
223+
}
224+
215225
$methods = array(
216226
'setMetadataCacheImpl' => new Reference('doctrine.orm.metadata_cache'),
217227
'setQueryCacheImpl' => new Reference('doctrine.orm.query_cache'),
218228
'setResultCacheImpl' => new Reference('doctrine.orm.result_cache'),
219229
'setMetadataDriverImpl' => new Reference('doctrine.orm.metadata_driver'),
220-
'setProxyDir' => '%kernel.cache_dir%/doctrine/Proxies',
230+
'setProxyDir' => $proxyCacheDir,
221231
'setProxyNamespace' => 'Proxies',
222232
'setAutoGenerateProxyClasses' => true
223233
);

‎src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/DoctrineBundle/DoctrineBundle.php
+5-2Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,11 @@ class DoctrineBundle extends Bundle
3737
*/
3838
public function buildContainer(ParameterBagInterface $parameterBag)
3939
{
40-
ContainerBuilder::registerExtension(new DoctrineExtension($parameterBag->get('kernel.bundle_dirs'), $parameterBag->get('kernel.bundles')));
41-
40+
ContainerBuilder::registerExtension(new DoctrineExtension(
41+
$parameterBag->get('kernel.bundle_dirs'),
42+
$parameterBag->get('kernel.bundles'),
43+
$parameterBag->get('kernel.cache_dir')
44+
));
4245
$metadataDirs = array();
4346
$entityDirs = array();
4447
$bundleDirs = $parameterBag->get('kernel.bundle_dirs');

‎src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/MongoDBExtension.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/MongoDBExtension.php
+12-1Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ class MongoDBExtension extends Extension
2424
protected $resources = array(
2525
'mongodb' => 'mongodb.xml',
2626
);
27+
protected $kernelCacheDir;
2728

28-
public function __construct(array $bundles)
29+
public function __construct(array $bundles, $kernelCacheDir)
2930
{
3031
$this->bundles = $bundles;
32+
$this->kernelCacheDir = $kernelCacheDir;
3133
}
3234

3335
/**
@@ -38,6 +40,15 @@ public function __construct(array $bundles)
3840
*/
3941
public function mongodbLoad($config, ContainerBuilder $container)
4042
{
43+
$proxyCacheDir = $this->kernelCacheDir . '/doctrine/mongodb-odm/Proxies';
44+
if (!is_dir($proxyCacheDir)) {
45+
if (false === @mkdir($proxyCacheDir, 0777, true)) {
46+
die(sprintf('Unable to create the Doctrine Proxy directory (%s)', dirname($proxyCacheDir)));
47+
}
48+
} elseif (!is_writable($proxyCacheDir)) {
49+
die(sprintf('Unable to write in the Doctrine Proxy directory (%s)', $proxyCacheDir));
50+
}
51+
4152
if (!$container->hasDefinition('doctrine.odm.mongodb.document_manager')) {
4253
$loader = new XmlFileLoader($container, __DIR__.'/../Resources/config');
4354
$loader->load($this->resources['mongodb']);

‎src/Symfony/Bundle/DoctrineMongoDBBundle/DoctrineMongoDBBundle.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/DoctrineMongoDBBundle/DoctrineMongoDBBundle.php
+4-1Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ class DoctrineMongoDBBundle extends Bundle
2525
*/
2626
public function buildContainer(ParameterBagInterface $parameterBag)
2727
{
28-
ContainerBuilder::registerExtension(new MongoDBExtension($parameterBag->get('kernel.bundles')));
28+
ContainerBuilder::registerExtension(new MongoDBExtension(
29+
$parameterBag->get('kernel.bundles'),
30+
$parameterBag->get('kernel.cache_dir')
31+
));
2932
}
3033
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.