diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 8d66bf1cf4ffc..e7461dce4f98f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -20,6 +20,7 @@ use Symfony\Component\DependencyInjection\Exception\LogicException; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\Config\Resource\ClassExistenceResource; use Symfony\Component\Config\Resource\FileResource; use Symfony\Component\Config\Resource\DirectoryResource; use Symfony\Component\Finder\Finder; @@ -32,6 +33,7 @@ use Symfony\Component\Serializer\Normalizer\DataUriNormalizer; use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; use Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer; +use Symfony\Component\Translation\Translator; use Symfony\Component\Workflow; use Symfony\Component\Yaml\Yaml; @@ -85,7 +87,8 @@ public function load(array $configs, ContainerBuilder $container) // A translator must always be registered (as support is included by // default in the Form component). If disabled, an identity translator // will be used and everything will still work as expected. - if (class_exists('Symfony\Component\Translation\Translator') || $this->isConfigEnabled($container, $config['form'])) { + $container->addResource(new ClassExistenceResource(Translator::class)); + if (class_exists(Translator::class) || $this->isConfigEnabled($container, $config['form'])) { if (!class_exists('Symfony\Component\Translation\Translator')) { throw new LogicException('Form support cannot be enabled as the Translation component is not installed.'); } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 278fadaf98d10..c2045dd9386cb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -20,7 +20,7 @@ "symfony/cache": "~3.2", "symfony/class-loader": "~3.2", "symfony/dependency-injection": "~3.2", - "symfony/config": "~2.8|~3.0", + "symfony/config": "~3.2", "symfony/event-dispatcher": "~2.8|~3.0", "symfony/http-foundation": "~3.1", "symfony/http-kernel": "~3.2", diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 4398a2a36d433..35b8078029af3 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -14,6 +14,7 @@ use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\SecurityFactoryInterface; use Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; +use Symfony\Component\Config\Resource\ClassExistenceResource; use Symfony\Component\DependencyInjection\DefinitionDecorator; use Symfony\Component\DependencyInjection\Alias; use Symfony\Component\HttpKernel\DependencyInjection\Extension; @@ -22,6 +23,7 @@ use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\Config\FileLocator; use Symfony\Component\Security\Core\Authorization\ExpressionLanguage; +use Symfony\Component\ExpressionLanguage\ExpressionLanguage; /** * SecurityExtension. @@ -70,7 +72,8 @@ public function load(array $configs, ContainerBuilder $container) $loader->load('security_debug.xml'); } - if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) { + $container->addResource(new ClassExistenceResource(ExpressionLanguage::class)); + if (!class_exists(ExpressionLanguage::class)) { $container->removeDefinition('security.expression_language'); $container->removeDefinition('security.access.expression_voter'); } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index 3ee1325ea257d..a28d83044e979 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -24,6 +24,7 @@ "require-dev": { "symfony/asset": "~2.8|~3.0", "symfony/browser-kit": "~2.8|~3.0", + "symfony/config": "~3.2", "symfony/console": "~2.8|~3.0", "symfony/css-selector": "~2.8|~3.0", "symfony/dom-crawler": "~2.8|~3.0",