diff --git a/lib/Doctrine/ORM/Proxy/ProxyException.php b/lib/Doctrine/ORM/Proxy/ProxyException.php index 892dbebbb..29462780d 100644 --- a/lib/Doctrine/ORM/Proxy/ProxyException.php +++ b/lib/Doctrine/ORM/Proxy/ProxyException.php @@ -36,6 +36,10 @@ class ProxyException extends \Doctrine\ORM\ORMException { return new self("You must configure a proxy directory. See docs for details"); } + public static function proxyDirectoryNotWritable() { + return new self("Your proxy directory must be writable."); + } + public static function proxyNamespaceRequired() { return new self("You must configure a proxy namespace. See docs for details"); } diff --git a/lib/Doctrine/ORM/Proxy/ProxyFactory.php b/lib/Doctrine/ORM/Proxy/ProxyFactory.php index 6ab28be3a..9436bcb71 100644 --- a/lib/Doctrine/ORM/Proxy/ProxyFactory.php +++ b/lib/Doctrine/ORM/Proxy/ProxyFactory.php @@ -153,8 +153,8 @@ class ProxyFactory $file = str_replace($placeholders, $replacements, $file); $parentDirectory = dirname($fileName); - if (! is_dir($parentDirectory)) { - mkdir($parentDirectory, 0, true); + if (! is_dir($parentDirectory) && ! mkdir($parentDirectory, 0775, true)) { + throw ProxyException::proxyDirectoryNotWritable(); } file_put_contents($fileName, $file, LOCK_EX);