From c973d8df1a601dc69a418015c7b96c2f5f749752 Mon Sep 17 00:00:00 2001 From: Christian Schmidt Date: Tue, 11 Nov 2014 07:35:52 +0100 Subject: [PATCH] Code style fixes. --- lib/Doctrine/ORM/Configuration.php | 9 +++-- lib/Doctrine/ORM/ORMException.php | 7 +++- .../Doctrine/Tests/ORM/ConfigurationTest.php | 38 ++++++++++++++++--- 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/lib/Doctrine/ORM/Configuration.php b/lib/Doctrine/ORM/Configuration.php index e92a04cd5..3c8a44762 100644 --- a/lib/Doctrine/ORM/Configuration.php +++ b/lib/Doctrine/ORM/Configuration.php @@ -385,11 +385,14 @@ class Configuration extends \Doctrine\DBAL\Configuration throw ORMException::queryCacheNotConfigured(); } - if ( ! $this->getMetadataCacheImpl()) { + $metadataCacheImpl = $this->getMetadataCacheImpl(); + + if ( ! $metadataCacheImpl) { throw ORMException::metadataCacheNotConfigured(); } - if ($this->getMetadataCacheImpl() instanceof ArrayCache) { - throw ORMException::metadataCacheUsesArrayCache(); + + if ($metadataCacheImpl instanceof ArrayCache) { + throw ORMException::metadataCacheUsesNonPersistentCache($metadataCacheImpl); } if ($this->getAutoGenerateProxyClasses()) { diff --git a/lib/Doctrine/ORM/ORMException.php b/lib/Doctrine/ORM/ORMException.php index 0cea4e087..d4894e825 100644 --- a/lib/Doctrine/ORM/ORMException.php +++ b/lib/Doctrine/ORM/ORMException.php @@ -19,6 +19,7 @@ namespace Doctrine\ORM; +use Doctrine\Common\Cache\Cache; use Exception; /** @@ -233,11 +234,13 @@ class ORMException extends Exception } /** + * @param Cache $cache + * * @return ORMException */ - public static function metadataCacheUsesArrayCache() + public static function metadataCacheUsesNonPersistentCache(Cache $cache) { - return new self('Metadata Cache uses ArrayCache.'); + return new self('Metadata Cache uses a non-persistent cache driver, ' . get_class($cache) . '.'); } /** diff --git a/tests/Doctrine/Tests/ORM/ConfigurationTest.php b/tests/Doctrine/Tests/ORM/ConfigurationTest.php index c7fe0981b..4b51312ba 100644 --- a/tests/Doctrine/Tests/ORM/ConfigurationTest.php +++ b/tests/Doctrine/Tests/ORM/ConfigurationTest.php @@ -2,6 +2,7 @@ namespace Doctrine\Tests\ORM; +use Doctrine\Common\Proxy\AbstractProxyFactory; use Doctrine\Common\Cache\ArrayCache; use Doctrine\ORM\Mapping as AnnotationNamespace; use Doctrine\ORM\Configuration; @@ -137,15 +138,22 @@ class ConfigurationTest extends PHPUnit_Framework_TestCase $this->configuration->getNamedQuery('NonExistingQuery'); } + /** + * Configures $this->configuration to use production settings. + * + * @param boolean $skipCache Do not configure a cache of this type, either "query" or "metadata". + */ protected function setProductionSettings($skipCache = false) { + $this->configuration->setAutoGenerateProxyClasses(AbstractProxyFactory::AUTOGENERATE_NEVER); + $cache = $this->getMock('Doctrine\Common\Cache\Cache'); - $this->configuration->setAutoGenerateProxyClasses(false); - if ($skipCache !== 'query') { + if ('query' !== $skipCache) { $this->configuration->setQueryCacheImpl($cache); } - if ($skipCache !== 'metadata') { + + if ('metadata' !== $skipCache) { $this->configuration->setMetadataCacheImpl($cache); } } @@ -174,14 +182,32 @@ class ConfigurationTest extends PHPUnit_Framework_TestCase { $this->setProductionSettings(); $this->configuration->setMetadataCacheImpl(new ArrayCache()); - $this->setExpectedException('Doctrine\ORM\ORMException', 'Metadata Cache uses ArrayCache.'); + $this->setExpectedException( + 'Doctrine\ORM\ORMException', + 'Metadata Cache uses a non-persistent cache driver, Doctrine\Common\Cache\ArrayCache.'); $this->configuration->ensureProductionSettings(); } - public function testEnsureProductionSettingsAutoGenerateProxyClasses() + public function testEnsureProductionSettingsAutoGenerateProxyClassesAlways() { $this->setProductionSettings(); - $this->configuration->setAutoGenerateProxyClasses(true); + $this->configuration->setAutoGenerateProxyClasses(AbstractProxyFactory::AUTOGENERATE_ALWAYS); + $this->setExpectedException('Doctrine\ORM\ORMException', 'Proxy Classes are always regenerating.'); + $this->configuration->ensureProductionSettings(); + } + + public function testEnsureProductionSettingsAutoGenerateProxyClassesFileNotExists() + { + $this->setProductionSettings(); + $this->configuration->setAutoGenerateProxyClasses(AbstractProxyFactory::AUTOGENERATE_FILE_NOT_EXISTS); + $this->setExpectedException('Doctrine\ORM\ORMException', 'Proxy Classes are always regenerating.'); + $this->configuration->ensureProductionSettings(); + } + + public function testEnsureProductionSettingsAutoGenerateProxyClassesEval() + { + $this->setProductionSettings(); + $this->configuration->setAutoGenerateProxyClasses(AbstractProxyFactory::AUTOGENERATE_EVAL); $this->setExpectedException('Doctrine\ORM\ORMException', 'Proxy Classes are always regenerating.'); $this->configuration->ensureProductionSettings(); }