parametry metody Nette\Debug::e­nable()

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

První parametr metody Debug::enable(), kde se uvádí úrovneň sledovaných chyb (např. E_ALL | E_STRICT), byl vždy volitelný, jelikož mi v podstatě nebylo moc jasné, jestli má vůbec nějaký význam. Pak se objevily parametry další, a zdá se mi, že ten první tam vlastně jen překáží.

Nebylo by lepší např. změnit jeho význam, že by se tam pomocí TRUE/FALSE/NULL určoval productionMode (NULL = autodetekce)? Dala by se zachovat i zpětná kompatibilita.

Jakub Šulák
Člen | 222
+
0
-

S tím bych souhlasil. Jen mě napadá, zda se neplánuje nějaká změna v budoucích verzích PHP?
Tedy, že by ve starších verzích bylo použito E_ALL | E_STRICT, zatímco v novější verzi 5.X bylo E_XXX | E_YYY. Pak by parametr měl opodstatnění (ačkoliv by šlo řešit detekcí verze přímo v Nette). Zda se plánuje změna se ptám – nesleduji moc plány na další verze.

PetrP
Člen | 587
+
0
-

David Grudl napsal(a):

Nebylo by lepší např. změnit jeho význam, že by se tam pomocí TRUE/FALSE/NULL určoval productionMode (NULL = autodetekce)? Dala by se zachovat i zpětná kompatibilita.

Nějak mi není jasné jak se to v jednotlivých hodnotách bude chovat.

kravčo
Člen | 721
+
0
-

PetrP napsal(a):

David Grudl napsal(a):

Nebylo by lepší např. změnit jeho význam, že by se tam pomocí TRUE/FALSE/NULL určoval productionMode (NULL = autodetekce)? Dala by se zachovat i zpětná kompatibilita.

Nějak mi není jasné jak se to v jednotlivých hodnotách bude chovat.

Nastavenie $productionMode: TRUE/FALSE ho nastaví na zadanú hodnotu, v prípade NULL, sa hodnota sa zistí autodetekciou.

kravčo
Člen | 721
+
0
-

David Grudl napsal(a):

Nebylo by lepší např. změnit jeho význam, že by se tam pomocí TRUE/FALSE/NULL určoval productionMode (NULL = autodetekce)? Dala by se zachovat i zpětná kompatibilita.

Možno by sa dali v ďalšom kroku použiť aj konštanty Debug::PRODUCTION, Debug::DEVELOPMENT, Debug::AUTODETECT, prípadne zapojiť konštanty Environment::*, ktoré sú trochu v úzadí…

Editoval kravco (16. 3. 2009 21:14)

PetrP
Člen | 587
+
0
-

kravco napsal(a):

PetrP napsal(a):

Nějak mi není jasné jak se to v jednotlivých hodnotách bude chovat.

Nastavenie $productionMode: TRUE/FALSE ho nastaví na zadanú hodnotu, v prípade NULL, sa hodnota sa zistí autodetekciou.

No ale mě právě zajímá na jakou hodnotu ho nastaví. A taky jestli to david ještě plánuje takhle udělat ;]

kravčo
Člen | 721
+
0
-

Nastaví sa na FALSE v prípade, že IP adresa je lokálna, v opačnom prípade na TRUE.

PetrP
Člen | 587
+
0
-

Mě zajímá jak se to bude chovat na hodnoty true a false.

Jestli se to při true nastaví na E_ALL | E_STRICT a při false se laděnka tedy vypne.
Nebo to bude mít jen vypisovací význam, tedy že při true se bude zobrazovat i v produkčním režimu (fuj).

kravčo
Člen | 721
+
0
-

Aha, tak to sme sa nepochopili. Production mode funguje od nepamäti tak, že pri FALSE chyby vypisuje a pri TRUE chyby loguje (a prípadne posiela informačný mail).

David Grudl napsal(a):

Nebylo by lepší např. změnit jeho význam, že by se tam pomocí TRUE/FALSE/NULL určoval productionMode (NULL = autodetekce)? Dala by se zachovat i zpětná kompatibilita.

David písal o zmene parametrov Debug::enable(), nie o zmene funkcionality, totiž dnes treba písať

Debug::$productionMode = TRUE; // alebo FALSE, či NULL = autodetekcia
Debug::enable();

A po novom by sa dalo

Debug::enable(TRUE);
David Grudl
Nette Core | 8218
+
0
-

Zkusil jsem to tam dát a uvidíme.

Debug::enable(Debug::DETECT);
Debug::enable(Debug::PRODUCTION);
Debug::enable(Debug::DEVELOPMENT);

Více zde.

ATom
Člen | 16
+
0
-

Teď jsem na narazil, po upgradu na novějšího Netta. Nemám nic proti, ale možná by se mohla zachovat možnost to výchozí hodnotu „E_ALL | E_STRICT“ změnit za nějakou jinou. Ně každý projekt je čistota sama. Používáme Nette i na starých projektech.

I když asi mi nic nebrání si to změnit po zavolání Debug::enable() zase na něco jiného.

Editoval ATom (16. 7. 2009 13:53)