Jak se dostat k datům RobotLoaderu
- Patrik Votoček
- Člen | 2221
Potřeboval bych se dostat k datům RobotLoader
-u ale
$RobotLoader->list
je private jde to něják jinak? (Potřebuju
získat názvy všech presenterů)
- Patrik Votoček
- Člen | 2221
Čistější způsob neexistuje??? Tahat to rovnou z cache me nepříjde zrovna čísté… :-(
- jasir
- Člen | 746
Tak já mám třeba poměrně dost upravený profiler debugeru (colophon) + výchozí template controlu a to tak, že si zobrazuji různé informace o aktuálním presenteru a controly se v debug módu vykreslují s oteviratelným menu, kde vidím proměnné controlu a další informace. Také obsahují přímé linky na editaci zrojových kódů presenteru/controlu a šablon. Musím tedy nějak zjistit, že MujSuperControl je /components/hehe/MujSuperControl.php a podobně u presenterů.
Editoval jasir (10. 8. 2009 15:19)
- jasir
- Člen | 746
pmg napsal(a):
:-O
Přijde ti to jako blbost? Já nějak nevěděl jak na to jinak a ten
RobotLoader se přímo
nabízel ;-)
Nebo prostě když mám funkci:
<?php
class DebugHelper {
public static createPresenterInformationPanel(Presenter $presenter) {
...
}
}
?>
Mohu nějak z té instance $presenter zjistit snadno kde je zdrojový kód
definující třídu presenteru?
Podobně pro Control
y
Editoval jasir (10. 8. 2009 15:21)
- pmg
- Člen | 372
Jen mě pozitivně překvapila myšlenka přímé editace souborů. Pro
debugovací účely se mi to řešení nezdá nečisté, problém vidím jen
v tom, že třídu teoreticky nemusí načítat RobotLoader
.
Možná by to ještě šlo přes ReflectionObject.
$file = $presenter->getReflection()->getFileName();
- jasir
- Člen | 746
pmg napsal(a):
Jen mě pozitivně překvapila myšlenka přímé editace souborů. Pro debugovací účely se mi to řešení nezdá nečisté, problém vidím jen v tom, že třídu teoreticky nemusí načítat
RobotLoader
.
To je pravda, ale já se na RobotLoadera spoléhám, přijde mi super :-)
Možná by to ještě šlo přes ReflectionObject.
$file = $presenter->getReflection()->getFileName();
Perfektní, to musím vyzkoušet. Děkuji. Nějak jsem čuchal že tudy by to mohlo jít.
Edit: Jo, šlape to. Perfektní, odstranil jsem další závislost na vlastních pokřivení Nette ;-)
Musím říct, že třeba taková blbůstka že bluescreen má klikatelné názvy souborů ve výpise chyb a exception a otevře IDE na souboru a řádce s chybou ušetří dost času.
Jinak mám ještě rozdělanou věc, která by měla na jedné stránce
vytvořit přehled
presenterů / controlů / (modelů?) v projektu, ale jde to pomalu, low
priority :-(.
Jestli to někdy dodělám do zveřejnitelného stavu (teď je to takový proof
of koncept, sám před sebou se nestydím to používat), dám to do extras.
Editoval jasir (10. 8. 2009 16:13)
- Patrik Votoček
- Člen | 2221
pmg napsal(a):
Čisté by asi bylo, kdybys to vůbec nepotřeboval. Neměl bys to potřebovat. Mohu mít intimní dotaz? K čemu to potřebuješ?
Tak třeba pro automatizované generování menu… Každej můj presenter který je přístupný v admin části je napojen na IMyPresenter který má jedu jednou metodu a tou je loadMenu… Která do „globální“ proměné nadefinuje celou strukturu menu v administraci a předá ji komponentě která to z toho vykreslí… (Samozdřejmě všechno cachuju aby to bylo rychlé)
- Patrik Votoček
- Člen | 2221
jasir napsal(a):
Musím říct, že třeba taková blbůstka že bluescreen má klikatelné názvy souborů ve výpise chyb a exception a otevře IDE na souboru a řádce s chybou ušetří dost času.
To chci taky… :-D
- jasir
- Člen | 746
vrtak-cz napsal(a):
jasir napsal(a):
Musím říct, že třeba taková blbůstka že bluescreen má klikatelné názvy souborů ve výpise chyb a exception a otevře IDE na souboru a řádce s chybou ušetří dost času.
To chci taky… :-D
Je to založené upraveném bluescreen.phtml, které generuje linky ve tvaru
phpeditor://...
. Pak se musí v OS nastavit, aby schéma
phpeditor://
vedlo na skript, který zpracuje tu url (která je
v zásadě jenom base64 coded název souboru + cesta) a otevře IDE se souborem
na dané řádce. Ten skript se musí napsat pro konkrétní IDE (já
používám PhpEd). Čili moje řešení je závislé na Windoze a na PhpED.
Pokud by stále byl zájem, můžu sem postnout patch na bluescreen.phtml a
řešení pro Windoze+PhpED.
Ještě teda ftipné je, že PhpEd je tak debilní editor, který sám neumí skočit na danou řádku v otevíraném souboru (to snad umí i notepad ;). Čili tam mám ve skriptu ještě děsivý hack, za který už se teda stydím, kterej pošle editoru klávesy CTRL+G (Go to line) a pak číslo řádku a enter :-). Bohužel, PhpEd lidé nereagují příliš na feature requesty … ;-)
Editoval jasir (10. 8. 2009 17:06)
- o5
- Člen | 416
vrtak-cz napsal(a):
pmg napsal(a):
Čisté by asi bylo, kdybys to vůbec nepotřeboval. Neměl bys to potřebovat. Mohu mít intimní dotaz? K čemu to potřebuješ?
Tak třeba pro automatizované generování menu… Každej můj presenter který je přístupný v admin části je napojen na IMyPresenter který má jedu jednou metodu a tou je loadMenu… Která do „globální“ proměné nadefinuje celou strukturu menu v administraci a předá ji komponentě která to z toho vykreslí… (Samozdřejmě všechno cachuju aby to bylo rychlé)
mohl by si sem hodit nastrel toho jak to funguje? nedokazu si to moc predstavit a umi to taky treba zjistit vsechny renderXYZ() metody presenteru?
- Vyki
- Člen | 388
jasir napsal(a): Pokud by stále byl zájem, můžu sem postnout patch na bluescreen.phtml a řešení pro Windoze+PhpED.
Ahoj, to by bylo super kdybys to sem umístil, nedávno jsem něco podobného řešil, bohužel zatím ne s příliš dobrým výsledkem. Rád si rozšířím obzory :o)
Editoval Vyki (12. 8. 2009 10:42)
- hrach
- Člen | 1838
jasir napsal(a):
Je to založené upraveném bluescreen.phtml, které generuje linky ve tvaru
phpeditor://...
. Pak se musí v OS nastavit, aby schémaphpeditor://
vedlo na skript, který zpracuje tu url (která je v zásadě jenom base64 coded název souboru + cesta) a otevře IDE se souborem na dané řádce. Ten skript se musí napsat pro konkrétní IDE (já používám PhpEd). Čili moje řešení je závislé na Windoze a na PhpED. Pokud by stále byl zájem, můžu sem postnout patch na bluescreen.phtml a řešení pro Windoze+PhpED.
Nemohl by si to zverejnit? Mel bych taky zajem… :)
- jasir
- Člen | 746
hrach napsal(a):
jasir napsal(a):
Je to založené upraveném bluescreen.phtml, které generuje linky ve tvaru
phpeditor://...
. Pak se musí v OS nastavit, aby schémaphpeditor://
vedlo na skript, který zpracuje tu url (která je v zásadě jenom base64 coded název souboru + cesta) a otevře IDE se souborem na dané řádce. Ten skript se musí napsat pro konkrétní IDE (já používám PhpEd). Čili moje řešení je závislé na Windoze a na PhpED. Pokud by stále byl zájem, můžu sem postnout patch na bluescreen.phtml a řešení pro Windoze+PhpED.Nemohl by si to zverejnit? Mel bych taky zajem… :)
No, já bych to klidně zveřejnil, ale je to založené na přepsání bluescreen.phtml (bohužel šablona se nedá vybrat programově) tak nechci rozšiřovat „bad practices“. Navíc je to fakt hack co se týče toho PhpEd. Ale šoupnu ti to na mail.
Editoval jasir (12. 8. 2009 11:00)
- Patrik Votoček
- Člen | 2221
o5 napsal(a):
mohl by si sem hodit nastrel toho jak to funguje? nedokazu si to moc predstavit a umi to taky treba zjistit vsechny renderXYZ() metody presenteru?
Vydrž prosím do pátku…