diff --git a/core/modules/language/language.services.yml b/core/modules/language/language.services.yml index 9f1a38f..fa4f4f3 100644 --- a/core/modules/language/language.services.yml +++ b/core/modules/language/language.services.yml @@ -13,7 +13,6 @@ services: - { name: event_subscriber } language.config_factory_override: class: Drupal\language\Config\LanguageConfigFactoryOverride - arguments: ['@language.default', '@config.storage', '@event_dispatcher', '@config.typed'] + arguments: ['@config.storage', '@event_dispatcher', '@config.typed'] tags: - { name: config.factory.override, priority: -254 } - - { name: persist } diff --git a/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverride.php b/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverride.php index 113d492..bfadec0 100644 --- a/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverride.php +++ b/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverride.php @@ -50,10 +50,6 @@ class LanguageConfigFactoryOverride implements LanguageConfigFactoryOverrideInte /** * Constructs the LanguageConfigFactoryOverride object. * - * @param \Drupal\Core\Language\LanguageDefault $language_default - * The default language service. This sets the initial language on the - * config factory to the site's default. The language can be used to - * override configuration data if language overrides are available. * @param \Drupal\Core\Config\StorageInterface $storage * The configuration storage engine. * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher @@ -61,11 +57,7 @@ class LanguageConfigFactoryOverride implements LanguageConfigFactoryOverrideInte * @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config * The typed configuration manager. */ - public function __construct(LanguageDefault $language_default, StorageInterface $storage, EventDispatcherInterface $event_dispatcher, TypedConfigManagerInterface $typed_config) { - // Ensure that configuration can be localised if the site is monolingual - // but the Language module is enabled. This is the case for monolingual - // sites not in English. - $this->language = $language_default->get(); + public function __construct(StorageInterface $storage, EventDispatcherInterface $event_dispatcher, TypedConfigManagerInterface $typed_config) { $this->storage = $storage; $this->eventDispatcher = $event_dispatcher; $this->typedConfigManager = $typed_config; @@ -147,7 +139,7 @@ protected function getLanguageConfigName($langcode, $name) { * {@inheritdoc} */ public function getCacheSuffix() { - return $this->language->id; + return $this->language ? $this->language->id : NULL; } /** @@ -165,4 +157,12 @@ public function setLanguage(Language $language = NULL) { return $this; } + /** + * {@inheritdoc} + */ + public function setLanguageFromDefault(LanguageDefault $language_default = NULL) { + $this->language = $language_default ? $language_default->get() : NULL; + return $this; + } + } diff --git a/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverrideInterface.php b/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverrideInterface.php index aceff6b..1c3de55 100644 --- a/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverrideInterface.php +++ b/core/modules/language/lib/Drupal/language/Config/LanguageConfigFactoryOverrideInterface.php @@ -9,6 +9,7 @@ use Drupal\Core\Config\ConfigFactoryOverrideInterface; use Drupal\Core\Language\Language; +use Drupal\Core\Language\LanguageDefault; /** * Defines the interface for a configuration factory language override object. @@ -39,6 +40,16 @@ public function getLanguage(); public function setLanguage(Language $language = NULL); /** + * Sets the language to be used in configuration overrides from the default. + * + * @param \Drupal\Core\Language\LanguageDefault $language_default + * The default language. + * + * @return $this + */ + public function setLanguageFromDefault(LanguageDefault $language_default = NULL); + + /** * Get language override for given language and configuration name. * * @param string $langcode diff --git a/core/modules/language/lib/Drupal/language/LanguageServiceProvider.php b/core/modules/language/lib/Drupal/language/LanguageServiceProvider.php index c62b2f0..95eb700 100644 --- a/core/modules/language/lib/Drupal/language/LanguageServiceProvider.php +++ b/core/modules/language/lib/Drupal/language/LanguageServiceProvider.php @@ -56,6 +56,14 @@ public function alter(ContainerBuilder $container) { if ($default_language_values = $this->getDefaultLanguageValues()) { $container->setParameter('language.default_values', $default_language_values); } + + // For monolingual sites, we explicitly set the default language for the + // language config override service as there is no language negotiation. + if (!$this->isMultilingual()) { + $container->getDefinition('language.config_factory_override') + ->addMethodCall('setLanguageFromDefault', array(new Reference('language.default'))); + } + } /** diff --git a/index.php b/index.php index 2181fb3..34346bc 100644 --- a/index.php +++ b/index.php @@ -8,6 +8,11 @@ * See COPYRIGHT.txt and LICENSE.txt files in the "core" directory. */ +$xhprof_path = '/var/www/'; +include_once $xhprof_path . '/xhprof_lib/utils/xhprof_lib.php'; +include_once $xhprof_path . '/xhprof_lib/utils/xhprof_runs.php'; +xhprof_enable(XHPROF_FLAGS_NO_BUILTINS + XHPROF_FLAGS_MEMORY); + require_once __DIR__ . '/core/vendor/autoload.php'; require_once __DIR__ . '/core/includes/bootstrap.inc'; @@ -23,3 +28,9 @@ print $message; throw $e; } + +$xhprof_data = xhprof_disable(); +$xhprof_runs = new XHProfRuns_Default(); +$namespace = 'd8'; +$id = $xhprof_runs->save_run($xhprof_data, $namespace); +print "XHPROF";