mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-31 00:48:25 +00:00
Add dump() method to IniReader.
This commit is contained in:
parent
e7fa2a526f
commit
c703a633bd
2 changed files with 57 additions and 4 deletions
|
@ -16,13 +16,15 @@
|
|||
* @since CakePHP(tm) v 2.0
|
||||
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
|
||||
*/
|
||||
App::uses('Hash', 'Utility');
|
||||
|
||||
/**
|
||||
* Ini file configuration parser. Since IniReader uses parse_ini_file underneath,
|
||||
* you should be aware that this class shares the same behavior, especially with
|
||||
* regards to boolean and null values.
|
||||
* Ini file configuration engine.
|
||||
*
|
||||
* In addition to the native parse_ini_file features, IniReader also allows you
|
||||
* Since IniReader uses parse_ini_file underneath, you should be aware that this
|
||||
* class shares the same behavior, especially with regards to boolean and null values.
|
||||
*
|
||||
* In addition to the native `parse_ini_file` features, IniReader also allows you
|
||||
* to create nested array structures through usage of `.` delimited names. This allows
|
||||
* you to create nested arrays structures in an ini config file. For example:
|
||||
*
|
||||
|
@ -135,4 +137,25 @@ class IniReader implements ConfigReaderInterface {
|
|||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dumps the state of Configure data into an ini formatted string.
|
||||
*
|
||||
* @param array $data The data to convert to ini file.
|
||||
* @return string The converted configuration as an ini string
|
||||
*/
|
||||
public function dump($data) {
|
||||
$result = array();
|
||||
foreach ($data as $key => $value) {
|
||||
if ($key[0] != '[') {
|
||||
$result[] = "[$key]";
|
||||
}
|
||||
if (is_array($value)) {
|
||||
$keyValues = Hash::flatten($value, '.');
|
||||
foreach ($keyValues as $k => $v) {
|
||||
$result[] = "$k = " . trim(var_export($v, true), "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
return join("\n", $result);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,4 +125,34 @@ class IniReaderTest extends CakeTestCase {
|
|||
$config = $reader->read('nested');
|
||||
$this->assertTrue($config['bools']['test_on']);
|
||||
}
|
||||
|
||||
/**
|
||||
* test dump method.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testDump() {
|
||||
$reader = new IniReader($this->path);
|
||||
$data = array(
|
||||
'One' => array(
|
||||
'two' => 'value',
|
||||
'three' => array(
|
||||
'four' => 'value four'
|
||||
)
|
||||
),
|
||||
'Asset' => array(
|
||||
'timestamp' => 'force'
|
||||
),
|
||||
);
|
||||
$result = $reader->dump($data);
|
||||
$expected = <<<INI
|
||||
[One]
|
||||
two = value
|
||||
three.four = value four
|
||||
[Asset]
|
||||
timestamp = force
|
||||
INI;
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue