Skip to content
Snippets Groups Projects
Commit 773a2138 authored by catch's avatar catch
Browse files

Issue #3251625 by alexpott, Berdir: Including settings.php a second time and...

Issue #3251625 by alexpott, Berdir: Including settings.php a second time and without same context can result in errors
parent d21e5db7
No related branches found
No related tags found
31 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!2074Issue #2707689: NodeForm::actions() checks for delete access on new entities,!1896Issue #2940605: Can only intentionally re-render an entity with references 20 times,!1459Issue #3087632: menu_name max length is too long,!1283Issue #2922435: "Add new comment" and "@count comments" links are not following accessibility good practices,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1254Issue #3238915: Refactor (if feasible) uses of the jQuery ready function to use VanillaJS,!1213Issue #3236497: Allow other modules to opt out of security release message from update_page_top,!1185Issue 318778: Rerolled patch.,!1162Issue #3100350: Unable to save '/' root path alias,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!1018Issue #2793343: Dialog drupalAutoButtons option should be respected on initial load,!1014Issue #3226806: Move filter implementations from filter.module to plugin classes,!957Added throwing of InvalidPluginDefinitionException from getDefinition().,!939Issue #2971209: Allow the MediaLibraryUiBuilder service to use an alternative view display,!878Issue #3221534: throw an exception when IDs passed to loadMultiple() are badly formed,!877Issue #2708101: Default value for link text is not saved,!873Issue #2875228: Site install not using batch API service,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!866Issue #2845319: The highlighting of the 'Home' menu-link does not respect query strings and fragment identifiers,!844Resolve #3036010 "Updaters",!8293023322 - Contextual Links Style Update,!712Issue #2909128: Autocomplete intermittent on Chrome Android,!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!449Issue #2784233: Allow multiple vocabularies in the taxonomy filter,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
......@@ -393,7 +393,7 @@ function system_requirements($phase) {
// Verify there are no database entries in settings.php with table prefix in
// array format.
if ($phase === 'runtime' || $phase === 'update') {
if (_system_check_array_table_prefixes(\Drupal::getContainer()->getParameter('app.root'), \Drupal::getContainer()->getParameter('site.path')) === TRUE) {
if (_system_check_array_table_prefixes() === TRUE) {
$requirements['database_table_prefixes'] = [
'title' => t('Database table prefixes'),
'value' => t("There is at least one database entry in the \$database array in settings.php that has a 'prefix' value in the format of an array. Per-table prefixes are no longer supported. Change your settings.php file to ensure the value of every 'prefix' entry is a single string."),
......@@ -1540,16 +1540,10 @@ function _system_advisories_requirements(array &$requirements): void {
/**
* Checks if there are 'prefix' entries in array format for tables.
*/
function _system_check_array_table_prefixes($app_root, $site_path) {
if (is_readable($app_root . '/' . $site_path . '/settings.php')) {
include $app_root . '/' . $site_path . '/settings.php';
}
if (empty($databases)) {
return FALSE;
}
foreach ($databases as $database) {
foreach ($database as $target) {
if (isset($target['prefix']) && is_array($target['prefix'])) {
function _system_check_array_table_prefixes() {
foreach (Database::getAllConnectionInfo() as $targets) {
foreach ($targets as $target) {
if (isset($target['extra_prefix']) && is_array($target['extra_prefix'])) {
return TRUE;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment