UPDATE - Wir arbeiten daran, WAMP mit phpDeveloper/Xdebug
in Gang zu bringen. Ich möchte immer noch NetBeans - ich möchte nur vergleichen, sehen, ob ich ein paar Einblicke bekomme.
Ich verwende NetBeans 6.9 mit LAMP und Xdebug , um mit PHP-Code zu arbeiten. Die Anzeige der Variablen funktioniert gut, aber in letzter Zeit funktioniert es weniger gut. Zum Beispiel sollte $authorized
im Variablenbereich unterhalb des Codes sichtbar sein und seinen Wert offen legen. Aber es zeigt nicht, noch seinen Wert, und das Bewegen über den Code hilft nicht. (Das $this
-Objekt wird angezeigt und es geht weiter und weiter, aber $authorized
ist nicht drin und es wäre auch nicht sinnvoll.)
Dieses Verhalten ist konsistent. Vielleicht ist es eine Funktion der Komplexität des Codes? Oder grassierende Objektnutzung? Es scheint damit angefangen zu haben, als ich CodeIgniter aufnahm.
Natürlich sind die Variablen versteckt, wenn ich sie am meisten brauche ... so scheint es dem armen Menschen. Was vermisse ich?
NetBeans-Debugger http://themanthursday.com/wiki/Debugger_Display.png
Es gibt ein besseres Beispiel unten. Wenn ich durch diesen Code gehe, zeigt die Variable nur Superglobals und $ this an, genau wie im Bild. Ich kann keine Werte sehen, nicht einmal einfache Saiten.
(Nagging dachte: Ich wette, das $ CI SuperObject hat etwas mit all dem zu tun ...)
%Vor%Klicken Sie mit der rechten Maustaste auf den Variablenbereich. Wählen Sie "Filter". Sie werden das Geheimnis finden.
Kam über diese Seite, die eine sehr schöne Verbindung zu einer Xdebug-Seite hat, die einen Schritt durch den Prozess des Aktualisierens von Xdebug durch Kompilieren einer "aktuelleren" Version führt:
Variablen innerhalb von Objekten / Klassen werden wieder angezeigt! Ja!
Keine Überwachung, nein, das kann Xdebug zum Ausflippen bringen - nur gute alte Variablen, die jetzt den Fehler meiner Lösung vollständig aufdecken ... (haha).
David
Ich habe sowas schon mal in Netbeans gesehen. Ich vermute, dass es nur ein Fehler ist, der Netbeans Interaktion mit XDebug betrifft. Eine mögliche Problemumgehung, die ich zuvor gesehen habe, ist das Hinzufügen einer "Überwachung" für die Variable, die Sie nicht sehen können. Für Ihr Beispiel könnten Sie zum Tab "Watches" gehen und $authorized
eingeben. Es sollte angezeigt werden, sobald es festgelegt wurde.
Ich denke, es kommt auf das Singleton-Muster an, das in CodeIgniter als "Super-Objekt" implementiert ist. Ich habe dieses Projekt nie neu gestartet, um Kamals Idee zu testen. Kurz nachdem er gepostet hatte, schloss ich, dass der Singleton der Grund war (ich habe nicht versucht zu erraten, ob Kamal die Lösung hat oder nicht). Daher meine Antwort zu diesem Beitrag .