| 
<html><head>
 <style>
 body
 {
 font-family: "Arial";
 }
 .config1
 {
 color: red;
 font-weight: bold;
 }
 .config2
 {
 color: blue;
 font-weight: bold;
 }
 .default
 {
 color: grey;
 font-style: italic;
 }
 </style>
 </head>
 <body>
 <h1>Config: Example how the mergeWith() method works</h1>
 <?php
 require_once 'autoloader.php';
 
 use SKien\Config\JSONConfig;
 use SKien\Config\ConfigInterface;
 
 // load first config and display the content
 // -> only the values defined in this file are available
 $oCfg1 = new JSONConfig('MergeExample1.json');
 
 echo '<h2>pure Config 1</h2>' . PHP_EOL;
 printConfig($oCfg1);
 
 // load second config and display the content
 // -> only the values defined in this file are available
 $oCfg2 = new JSONConfig('MergeExample2.json');
 
 echo '<h2>pure Config 2</h2>' . PHP_EOL;
 printConfig($oCfg2);
 
 // clone first config and merge it with the second.
 // -> elements only available in first config keep the value
 // -> elements available in both are overwritten with value from second config
 // -> elements only available in second config are supplemented
 // -> index based array elements are overwritten as whole element
 $oCfg3 = clone $oCfg1;
 $oCfg3->mergeWith($oCfg2);
 
 echo '<h2>Config 1 merged with Config 2</h2>' . PHP_EOL;
 printConfig($oCfg3);
 
 
 // clone second config and merge it with the first.
 // -> elements only available in second config keep the value
 // -> elements available in both are overwritten with value from first config
 // -> elements only available in second first are supplemented
 // -> index based array elements are overwritten as whole element
 $oCfg3 = clone $oCfg2;
 $oCfg3->mergeWith($oCfg1);
 
 echo '<h2>Config 2 merged with Config 1</h2>' . PHP_EOL;
 printConfig($oCfg3);
 
 /**
 * Just print the values of the given config
 * @param ConfigInterface $oCfg
 */
 function printConfig(ConfigInterface $oCfg) : void
 {
 echo '<h3>Base Entries</h3>' . PHP_EOL;
 echo '<ul>' . PHP_EOL;
 echo '<li>BaseString_1: ' . $oCfg->getString('BaseString_1', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '<li>BaseString_2: ' . $oCfg->getString('BaseString_2', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '<li>BaseString_3: ' . $oCfg->getString('BaseString_3', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '</ul>' . PHP_EOL;
 echo '<h3>Module 1</h3>' . PHP_EOL;
 echo '<ul>' . PHP_EOL;
 echo '<li>Module_1.String_1: ' . $oCfg->getString('Module_1.String_1', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '<li>Module_1.String_2: ' . $oCfg->getString('Module_1.String_2', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '<li>Module_1.String_3: ' . $oCfg->getString('Module_1.String_3', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '<li>Module_1.String_4: ' . $oCfg->getString('Module_1.String_4', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '<li>Module_1.String_5: ' . $oCfg->getString('Module_1.String_5', '<span class=default>not Set</span>') . '</li>' . PHP_EOL;
 echo '</ul>' . PHP_EOL;
 echo '<h3>Indexed Array:</h3>' . PHP_EOL;
 $aEntry = $oCfg->getArray('IndexedArray');
 $i = 0;
 echo '<ul>' . PHP_EOL;
 foreach ($aEntry as $value) {
 echo '<li>Value[' . $i++ . ']: ' . $value . '</li>' . PHP_EOL;
 }
 echo '</ul>' . PHP_EOL;
 }
 ?>
 </body>
 </html>
 
 |