Nelze načíst config, který byl přeuložen přes Config\Loader

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
arron
Člen | 464
+
0
-

Ahoj,

objevil jsem nejspíš chybu v Config\Loader. Pokud provedu následující kód:

$loader = new Nette\Config\Loader();
$config = $loader->load('config.neon', 'development');
$loader->save($config, 'configNew.neon');

tak se původní:

development:
	services:
		dbConnection:
            		class: \Cms\Base\Database\Db(%db%)

zapíše jako:

services:
	dbConnection:
		class:
			value: \Cms\Base\Database\Db
			attributes:
				- %db%

která již nelze opětovně načíst. Jsou tam dva problémy:
Nejdříve „Missing section ‚development‘ in file ‚/config.neon‘.
Následně po přidání sekce developent „Service ‚dbConnection‘: The item ‚class‘ in array expects to be string or stdClass or null, array(2) given.“.

Je to chyba nebo to blbě používám?

PHP 5.3, Nette Framework 2.1-dev (revision 4f397ea released on 2012–03–22)

Díky moc

Editoval arron (29. 3. 2012 23:31)

arron
Člen | 464
+
0
-

Trochu jsem se v tom prohrabal a problém je v NeonAdapteru na řádku 67:

if (is_array($val)) {
	$val = $this->process($val);
} elseif ($val instanceof Nette\Utils\NeonEntity) {
	//řádek 67, kde se ztráci NeonEntity a je to nevratná operace
	$val = (object) array('value' => $val->value, 'attributes' => $this->process($val->attributes));
}