/** * Parcours $conTwo pour alimenter $conf * * @param Conf $conf Configuration alimentée * @param Conf $confTwo Configuration parcourue * * @return void */ protected static function each(Conf $conf, Conf $confTwo) { foreach ($confTwo->each() as $key => $data) { if ($conf->has($key) === false) { $conf->set($data, $key); continue; } if (gettype($conf->get($key)) !== 'object') { $conf->set($data, $key); continue; } if (is_a($conf->get($key), Conf::class) === true) { if (is_a($data, Conf::class) === true) { self::each($conf->get($key), $data); continue; } continue; } $conf->set($data, $key); } }
/** * Contrôle parcour d'éléments * * @return void */ public function testEach() { $this->if($conf = new TestClass())->and($conf->set(1, 'section1', 'name1'))->and($conf->set(2, 'section1', 'name2'))->and($conf->set('toto', 'stringSection'))->array($conf->each())->isEqualTo(['section1' => $conf->get('section1'), 'stringSection' => 'toto'])->array($conf->each('section1'))->isEqualTo(['name1' => 1, 'name2' => 2])->array($conf->each('nonPresent'))->isEqualTo([]); }