call_user_func_array vs. call_user_func

8

Ich bin heute auf ein interessantes Thema gestoßen. Wir haben eine Anwendung, die die Caching-Funktionalität von Zend Frameworks nutzt. Eine Anforderung an diese Anwendung ruft normalerweise eine Factory-Methode mit der folgenden Zeile

auf %Vor%

Die Idee besteht darin, ein Objekt von der Factory-Methode zurückzugeben, auf die wir später zugreifen können. Wenn wir eine Caching-Funktion implementiert haben, stirbt dieser Aufruf einfach. Keine Fehler, nur ein weißer Bildschirm. Nichts im Fehlerprotokoll. Wir können die Zeile vor dem Fehler protokollieren, aber der Fehler in der Factory-Methode versucht nichts.

Interessanterweise ändern Sie die Zeile zu:

%Vor%

behebt das Problem.

Wir haben ein paar Stunden damit verbracht, nach Fehlerberichten Ausschau zu halten und haben uns nicht viel vorgenommen, um dieses Verhalten zu erklären. Gedanken an jemanden?

    
goose77 13.07.2009, 17:03
quelle

3 Antworten

2

Ich hatte Probleme wie diese, die dazu führten, dass __autoload nicht ordnungsgemäß zündete, wenn eine noch nicht geladene Klasse über einen PHP-Befehl aufgerufen wurde. Keine andere Strategie als dumme Versuch und Irrtum dafür, soweit ich weiß, versuchen Sie es einfach, wenn eine Zeile die Klasse explizit aufruft, bevor der PHP-Befehl sie für Sie löst.

%Vor%     
dyve 15.07.2009, 11:11
quelle
0

Welche Version von PHP verwenden Sie? Es gab ein Problem bei der Kombination von call_user_func_array mit ReflectionClass an einem Punkt. Ich bin mir nicht sicher, ob es schon behoben ist.

    
troelskn 13.07.2009 17:35
quelle
0

Ist es segfauling? Überprüfen Sie Ihre 'root' Apache Logs (außerhalb eines virtuellen Hosts) und sehen Sie, was los ist. Wenn dieser Thread segfauling ist, können Sie dies in den PHP-Mailinglisten und / oder Bug Tracker verfolgen.

Alternativ könntest du versuchen, http im Einzelbenutzermodus, in GDB, mit einer Debug-Kompilierung von PHP laufen zu lassen und zu sehen, ob du es erfassen kannst, aber das ist eine Menge Arbeit: -)

    
Justin 13.07.2009 18:16
quelle

Tags und Links