diff --git a/composer.json b/composer.json index 37164c5..92831e5 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "type": "drupal-core", "license": "GPL-2.0+", "require": { - "php": ">5.4.4-13", + "php": ">5.4.5", "sdboyer/gliph": "0.1.*", "symfony/class-loader": "2.5.*", "symfony/css-selector": "2.5.*", @@ -23,6 +23,8 @@ "kriswallsmith/assetic": "1.1.*@alpha", "symfony-cmf/routing": "1.2.*", "easyrdf/easyrdf": "0.8.*", + "ocramius/proxy-manager": "0.5.*", + "symfony/proxy-manager-bridge": "2.5.*", "phpunit/phpunit": "4.1.*", "phpunit/phpunit-mock-objects": "dev-master#e60bb929c50ae4237aaf680a4f6773f4ee17f0a2", "zendframework/zend-feed": "2.2.*", diff --git a/core/core.services.yml b/core/core.services.yml index 1d9b2d2..72713ae 100644 --- a/core/core.services.yml +++ b/core/core.services.yml @@ -201,6 +201,7 @@ services: logger.factory: class: Drupal\Core\Logger\LoggerChannelFactory parent: container.trait + lazy: true tags: - { name: service_collector, tag: logger, call: addLogger } logger.channel_base: @@ -208,23 +209,30 @@ services: class: Drupal\Core\Logger\LoggerChannel factory_method: get factory_service: logger.factory + lazy: true logger.channel.default: parent: logger.channel_base arguments: ['system'] + lazy: true logger.channel.php: parent: logger.channel_base arguments: ['php'] + lazy: true logger.channel.image: parent: logger.channel_base arguments: ['image'] + lazy: true logger.channel.cron: parent: logger.channel_base arguments: ['cron'] + lazy: true logger.channel.form: parent: logger.channel_base arguments: ['form'] + lazy: true logger.log_message_parser: class: Drupal\Core\Logger\LogMessageParser + lazy: true serialization.json: class: Drupal\Component\Serialization\Json @@ -448,6 +456,7 @@ services: lock: class: Drupal\Core\Lock\DatabaseLockBackend arguments: ['@database'] + lazy: true tags: - { name: backend_overridable } router.request_context: diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index 6a9b78d..cf09c14 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -22,6 +22,7 @@ use Drupal\Core\PageCache\RequestPolicyInterface; use Drupal\Core\PhpStorage\PhpStorageFactory; use Drupal\Core\Site\Settings; +use Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\ProxyDumper; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; use Symfony\Component\DependencyInjection\Dumper\PhpDumper; @@ -1135,6 +1136,9 @@ protected function dumpDrupalContainer(ContainerBuilder $container, $baseClass) } // Cache the container. $dumper = new PhpDumper($container); + $proxy_dumper = new ProxyDumper(); + $dumper->setProxyDumper($proxy_dumper); + $class = $this->getClassName(); $content = $dumper->dump(array('class' => $class, 'base_class' => $baseClass)); return $this->storage()->save($class . '.php', $content);