system.moduleconfiguration contains the list of installed modules, but System module is a module that needs to be installed on its own.
Due to this circular dependency, the Drupal installer has to manually install System module in a very custom + fragile way.
Installation profiles are supposed to ship with default configuration, but they cannot ship with e.g. a
system.themefile to configure the default theme + admin theme.
That is, because the
system.themeconfiguration also contain the list of enabled modules and themes, and thus those files are force-overwritten by the Drupal installer.
Merge and consolidate
system.theme.disabledinto a new
This file is owned and maintained by
The default configuration file + config schema file is located in:
Change the Drupal installer to install System module... like any other module! :-)
Config\Schema\SchemaStorageaware that the core base system itself has default configuration to be installed.
This only affects installation of default configuration.
core.extensionfile has to be maintained in very special ways either way (especially when configuration is synchronized and imported); cf.
To limit the necessary changes throughout the system, make
drupal_get_path()aware of a new file lookup "type", introducing
'core'as a new type/provider:
drupal_get_path('core', 'core'); // yields 'core'
The file layout of Drupal core does follow the common pattern, as also implemented by modules:
core/config/schema core/config core/lib core/core.services.yml core/core.libraries.yml
Making "core" available as an actual provider location will open the door for simplifying a lot of code throughout core, which has to special-case the base system declarations currently.
In addition, developers familiar with Symfony's concept of Bundles will notice that Symfony treats the framework itself as a bundle, too. — Exactly for the same reason.
Note: This only affects
drupal_get_path(). Core is not added as an Extension to the module list, since that is not necessary for this patch, but it could be discussed and investigated in a separate follow-up issue.
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 66,938 pass(es). View
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch extension.core_.12.patch. Unable to apply patch. See the log in the details link for more information. View
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] 66,650 pass(es), 1 fail(s), and 82 exception(s). View