Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
project
drupal
Commits
d2f1b256
Commit
d2f1b256
authored
Mar 23, 2012
by
Dries
Browse files
- Patch
#1484690
by Pol, jhedstrom, beejeebus: implement overrides in the configuration system.
parent
5868d523
Changes
4
Hide whitespace changes
Inline
Side-by-side
core/lib/Drupal/Core/Config/DrupalConfig.php
View file @
d2f1b256
...
...
@@ -81,17 +81,27 @@ public function isOverridden($key) {
* The data that was requested.
*/
public
function
get
(
$key
=
''
)
{
global
$conf
;
$name
=
$this
->
_verifiedStorage
->
getName
();
if
(
isset
(
$conf
[
$name
]))
{
$merged_data
=
drupal_array_merge_deep
(
$this
->
data
,
$conf
[
$name
]);
}
else
{
$merged_data
=
$this
->
data
;
}
if
(
empty
(
$key
))
{
return
$
this
->
data
;
return
$
merged_
data
;
}
else
{
$parts
=
explode
(
'.'
,
$key
);
if
(
count
(
$parts
)
==
1
)
{
return
isset
(
$
this
->
data
[
$key
])
?
$
this
->
data
[
$key
]
:
NULL
;
return
isset
(
$
merged_
data
[
$key
])
?
$
merged_
data
[
$key
]
:
NULL
;
}
else
{
$key_exists
=
NULL
;
$value
=
drupal_array_get_nested_value
(
$
this
->
data
,
$parts
,
$key_exists
);
$value
=
drupal_array_get_nested_value
(
$
merged_
data
,
$parts
,
$key_exists
);
return
$key_exists
?
$value
:
NULL
;
}
}
...
...
core/lib/Drupal/Core/Config/DrupalConfigVerifiedStorage.php
View file @
d2f1b256
...
...
@@ -99,4 +99,11 @@ public function delete() {
$this
->
deleteFromActive
();
$this
->
deleteFile
();
}
/**
* Implements DrupalConfigVerifiedStorageInterface::getName().
*/
public
function
getName
()
{
return
$this
->
name
;
}
}
core/lib/Drupal/Core/Config/DrupalConfigVerifiedStorageInterface.php
View file @
d2f1b256
...
...
@@ -81,4 +81,9 @@ function writeToFile($data);
* @todo
*/
static
function
getNamesWithPrefix
(
$prefix
);
/**
* Gets the name of this object.
*/
public
function
getName
();
}
core/modules/config/config.test
View file @
d2f1b256
...
...
@@ -268,3 +268,31 @@ class ConfigFileContentTestCase extends DrupalWebTestCase {
// Attempt to delete non-existing configuration.
}
}
/**
* Tests configuration overriding from settings.php.
*/
class
ConfOverrideTestCase
extends
DrupalWebTestCase
{
protected
$testContent
=
'Good morning, Denver!'
;
public
static
function
getInfo
()
{
return
array
(
'name'
=>
'Configuration overrides'
,
'description'
=>
'Tests configuration overrides through settings.php.'
,
'group'
=>
'Configuration'
,
);
}
/**
* Test configuration override.
*/
function
testConfigurationOverride
()
{
global
$conf
;
$config
=
config
(
'system.performance'
);
$this
->
assertNotEqual
(
$config
->
get
(
'cache'
),
$this
->
testContent
);
$conf
[
'system.performance'
][
'cache'
]
=
$this
->
testContent
;
$config
=
config
(
'system.performance'
);
$this
->
assertEqual
(
$config
->
get
(
'cache'
),
$conf
[
'system.performance'
][
'cache'
]);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment