K čemu je Nclosurefix::$vars[.Nclosurefix::uses…

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

Ahoj, párkrát je v zdrojáku toto a vůbec nevím co to dělá.

callback(create_function('$m',
'extract(NClosureFix::$vars['.
NClosureFix::uses(array('This'=>$This,'content'=> $content,'modifiers'=> $modifiers)).
'], EXTR_REFS);

třeba tento konkretně v Lattemacros

je to něco jako …phpfashion)

function getMultiplier($product)
{
    return function ($value) use ($product) {
        return $value * $product;
    };
}

?

Editoval bojovyletoun (29. 10. 2010 12:58)

Vyki
Člen | 388
+
0
-

Je to tak. Je to kvůli zpětné kompatibilitě. Protože v PHP < 5.3 nejsou ještě closures, v distribuci Nette pro php < 5.3 jsou místa v kódu, kde se closures objevují nahrazeny tou funkcí create_function(). Myslím, že jsem tu někde četl, že na to má David napsán nějaký automatický převodník.

Editoval Vyki (29. 10. 2010 13:26)