Odstranění globální fce callback

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

Chtěl jsem využít Nette\Security samostatně v modelu aplikace která využívá jako prezentační vrstvu jednou Nette, jednou zase jiný framework. „Vykousnul“ jsem si tedy potřebné třídy z Nette a vše funguje skvěle až na globální fci callback, kterou vyžaduje Security\Permission. Jednak se do modelu těžko přidává a když už se to povede tak je pak v konfliktu s callback() v Nette. Já nevím, nešla by přesunout třeba na statickou metodu Nette\Callback? Co myslíte, mělo by to smysl? Četl jsem vlákno fce callback ale mám pocit že mi stejně uniká důvod proč je ta fce globální.

Editoval elendir (24. 8. 2012 13:41)

Majkl578
Moderator | 1364
+
0
-

Pro své účely můžeš callback(...) nahradit za new \Nette\Callback(...).

elendir
Člen | 31
+
0
-

Jj to jsem udělal, jen mě mrzí že jsem musel přepisovat Nette třídy místo toho abych od nich jen podědil. Ale uznávám, že budu nejspíš ojedinělý případ a že něco podobného moc lidí nepotřebuje. Každopádně díky za odpověď!

Jan Tvrdík
Nette guru | 2595
+
0
-

Asi by bylo lepší, kdyby funkce callback existovala ve jmenném prostoru Nette a framework by interně používal právě tuto funkci. Kromě toho by pak existoval alias této funkce v globálním jmenném prostoru, ale ten by již framework sám nepoužíval.

Majkl578
Moderator | 1364
+
0
-

Jan Tvrdík napsal(a):

Asi by bylo lepší, kdyby funkce callback existovala ve jmenném prostoru Nette a framework by interně používal právě tuto funkci. Kromě toho by pak existoval alias této funkce v globálním jmenném prostoru, ale ten by již framework sám nepoužíval.

S tím souhlasím. Zároveň bych totéž aplikoval i na funkci dump.

Patrik Votoček
Člen | 2221
+
0
-

tak pošlete pulík ne?

Majkl578
Moderator | 1364
+
0
-

Mimochodem ta globální funkce by existovala také vždy nebo by měla nějaký přepínač, který by šla zapnout/vypnout? :)

Jinak co se týče callback() přímo ve frameworku, ono by se asi mohlo přímo používat new Nette\Callback, ne?

Patrik Votoček
Člen | 2221
+
0
-

Majkl578 napsal(a):

Mimochodem ta globální funkce by existovala také vždy nebo by měla nějaký přepínač, který by šla zapnout/vypnout? :)

přepínačem by bylo to jestli už je definována něčím / někým jiným ne?

Majkl578
Moderator | 1364
+
0
-

Patrik Votoček napsal(a):

přepínačem by bylo to jestli už je definována něčím / někým jiným ne?

To je možná varianta, ale co kdybys to něco/někoho načítal až po Nette?

Majkl578
Moderator | 1364
+
0
-

Ad problém v #1 – pull request.

Majkl578
Moderator | 1364
+
0
-

elendir: V Nette 2.0.5 bys již neměl mít problém (198d05a3, 4ee92676, a0cd9903).

elendir
Člen | 31
+
0
-

Tyjo to byla rychlost, díky moc! Až budu mít chvíli tak určitě vyzkouším!