Podivné chování neon parseru

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

Ahoj,

při konfiguraci tříd v konfigu jsem narazil na docela podivné chování NEON parseru. Pokud uvedu jako parametr @service NEON to přeloží na NULL, po obalení uvozovkami to funguje dle očekávání…

Nejlepší bude asi příklad:

production:
	services:
		service1:
			class: Namespace\Class
			arguments: @service2 # přeloží se jako null

vygeneruje následující:

array(1) {
   "production" => array(1) {
      "services" => array(1) {
         "service1" => array(2) {
            "class" => "Namespace\Class" (15)
            "arguments" => NULL
         }
      }
   }
}

Předpokládám, že to asi není požadované chování?

kravčo
Člen | 721
+
0
-

Vzhľadom k https://github.com/…/config.neon sú tie úvodzovky zrejme naozaj nutné (neviem, či dočasne, alebo na furt…)

norbe
Backer | 405
+
0
-

Teď bych se pokusil odprostit od konfigurace služeb.

Přijde mi divné, aby se takovýhle řetězec automaticky nahradil za NULL hodnotu… Jestli není žádoucí, aby to bez uvozovek fungovalo, mělo by to podle mně hodit spíš nějakou výjimku než místo toho dát NULL.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Já myslím, že to souvisí s tím, že NEON parsuje i anotace, a to ta, že název samotné anotace zatím vypouští (což podle mě je chyba, respektive je to důvod, proč ho na parsování anotací nenasadit). Takže když je uvedeno @service, tak on to chápe jako klíč pole bez hodnoty, tudíž NULL. Jen tipuju… viz ne-on.org.

David Grudl
Nette Core | 8142
+
0
-

Samostatné @service už by mělo fungovat jakožto řetězec.

Filip Procházka
Moderator | 4668
+
0
-

@**norbe**: Nezapomínej, že je to pole :)

arguments: [@service]