Chyba v LimitedScope?

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

Zdravím,
po prechode z r391 na r399 na mňa po otvorení stránky vyskočilo asi 5 chybových hlásení: „Strict Standards: Only variables should be passed by reference in G:\libs\Nette\Loaders\LimitedScope.php on line 72

Myslím, že ide o chybu na tomto riadku: extract(func_get_arg(1));
Ak to zmením za $var = func_get_arg(1); extract($var); tak už to funguje v pohode.

http://code.google.com/…/source/diff?…

David Grudl
Nette Core | 8228
+
0
-

Ha! Dyk já si to myslel http://php.vrana.cz/…resource.php#…

Jod
Člen | 701
+
0
-

Tak dneska sme nato na chate nejakú chvílu čumeli. Hlavne je, že php hlásilo jedno a dokumetácia druhé.
Než som stihol stiahnuť rev. tak je to opravené, som sa čudoval, že mi nič nevypisuje :)

Majkl578
Moderator | 1364
+
0
-

Používám revizi 407 a stále mám tento problém.

David Grudl
Nette Core | 8228
+
0
-

V jaké verzi PHP se to stává? (není to nějaká beta?)

timbulko
Člen | 85
+
0
-

PHP 5.3.0: Build Date Jun 29 2009 21:23:30

PaBi3
Bronze Partner | 62
+
0
-

Tiež sa stretávam s týmto chybovým hlásením. Mám stable PHP 5.3.

Kód pri E_ALL | E_STRICT však prejde bez chyby:

extract(array("foo" => "bar"));

Editoval PaBi3 (14. 7. 2009 0:35)

David Grudl
Nette Core | 8228
+
0
-

To je divný, v PHP 5.3 (29 Jun 2009 20:27:24) s E_ALL | E_STRICT se mi to nepodařilo vyvolat.

LM
Člen | 206
+
0
-

Mě to ten strict vyhazuje pouze při kombinaci PHP5.3 a Nette pro 5.3 s verzí pro 5.2 se to neděje.

David Grudl
Nette Core | 8228
+
0
-

Myslím žes na to kápl. Pošlu to jako bug report na PHP.

PaBi3
Bronze Partner | 62
+
0
-

Nebolo by možné to dočasne vrátiť do pôvodného stavu (r399) pre PHP 5.3 verziu? Lebo ktovie, kedy to opravia. Takto to stále vypisuje chybové hlásenia a je potrebné si ručne upraviť LimitedScope.php.

LM
Člen | 206
+
0
-

PaBi3 napsal(a):

Nebolo by možné to dočasne vrátiť do pôvodného stavu (r399) pre PHP 5.3 verziu? Lebo ktovie, kedy to opravia. Takto to stále vypisuje chybové hlásenia a je potrebné si ručne upraviť LimitedScope.php.

Přesně, co tam udělat něco jako (ať zůstane $__vars zachována):

self::$vars = func_get_arg(1);
extract(self::$vars);
Majkl578
Moderator | 1364
+
0
-

řešení pěkn, nicméně:

FatalErrorException

Access to undeclared static property: Nette\Loaders\LimitedScope::$vars

nastavené $vars není statické

David Grudl
Nette Core | 8228
+
0
-

fixed

LM
Člen | 206
+
0
-

David Grudl napsal(a):

fixed

Bylo by možný to hodit i na web ke stažení? protože v balíku pro 5.3 je stále revize 464.