Ajax-Probleme bei Umstellung von PHP54 zu 56

Hi an alle Wissende,

ich habe vor kurzen mein Developmentsystem (Mac OS X 10.9) umgestellt von PHP54 zu 56 (Generatoren-Webseitenentwicklung mit Phalcon -> deswegen PHP56). Dazu betreue ich ein(ige) Projekt(e), welche ich öfters mit neuen Features ausrüsten muss, da diese Projekte (Enterprise-Applikationen) sind und eher in meiner Anfängerzeit liegen, benutzte ich damals noch „datatables“ (akt. neuste Version) für die Tabellen.

Seit der Umstellung bekomme ich ein „json response“ Error (aber nur auf manche Tabellen, nicht alle) der response im Fehlerfall ist leer (was eigentlich gar nicht sein kann)??? Alle Tabellen nutzen das gleiche Schema -> es gibt eine Javascript Klasse Table die in etwa so funktioniert:
<pre>
table = new Table(‚tableid‘);
table.ajax(data);  // data = values=id,column1… usw (nur als Beispiel)
table.create();
</pre>

Jeder „Hauptmenupunkt“ besitzt einen eigenen Controller (PHPController->abhängig von dem Request erzeugt er 2 Arten der Tabelle, einmal -> (a) Tabellen die eigentlich vom Javascript Routing (url.search == request) gesteuert werden (also das Routing an sich übernimmt der PHPController, koppelt aber die Anfrage auf einen Javascriptrequest), also eine server-processing datatable… und (b)Tabellen die er selbst erzeugt aber die Kontrolle an datatables abgibt(in dem Fall bleibt das komplette Routing beim PHPController).

Controller1: besitzt eine Tabelle nach diesem Muster(a) + 3 SubTabellen nach dem Muster(b) -> alles cool.
Controller2: besitzt 3 Tabellen nach diesem Muster(a) (nur Tabelle 3 geht -> 1 und 2 werfen den Json-Response Error) und 1 SubTabelle nach dem Muster (b) -> alles cool
Controller3: besitzt auch 3 Tabellen nach dem Muster (a) (Tabelle 1 und 3 gehen -> Tabelle 2 wirft den Fehler)

Ich habe schon zich Möglichkeiten ausprobiert (php56 mit der alten php.ini von 54, geswitcht von php.ini-dev zu php.ini-prod)…nütz nichts solange PHP56 aktiv ist bekomme ich den Fehler.
Sobald ich wieder den Apache auf php54 umstelle, funktioniert alles wie gehabt.

Momentan handhabe ich das so -> arbeite ich an Projekten die datatables benutzen kommentiere ich einfach „LoadModule“ -> php56 aus und php54 ein und für alles andere andersrum.

Jedoch würde mich mal interessieren wo das Problem hier liegt? Hat irgendjemand ein Vorstellung oder Verdacht?

Gruß XDD

Ich will ja nicht mekkern an deiner Beschreibung
nur hab ich kein Code um irgendwie zu schauen warum
genau eine Möglichkeit nicht funktioniert .

Mussu verstehen ! So wird die Fehlersuche unmöglich .

Gelöst!

Ich will ja nicht mekkern an deiner Beschreibung
nur hab ich kein Code um irgendwie zu schauen warum
genau eine Möglichkeit nicht funktioniert .

Mussu verstehen ! So wird die Fehlersuche unmöglich .

Ja schon klar, bloss gestaltet sich das als nicht so einfach bei objektorientierter Programmierung und einer Enterprise-Applikation von tausenden Zeilen Code.

Dazu bin ich nicht von einem Fehler ausgegangen, da alle das gleiche Schema bzw. Klassen benutzen (bei einer gehts bei der anderen nicht) -> woraus ich schlussfolgerte es kann kein Fehler von mir sein, da es ja unter PHP5.3 und 5.4 „perfekt“ lief -> falsch gedacht!

Also Danke an dich, denn auf der Suche nach dem relevanten Teil den ich dir posten könnte (Ausschlussverfahren), stiess ich letztendlich auf die Helper-PHP-Klasse die die Aufarbeitung für die server-side-processing Tabellen, macht.

Als ich das damals geschrieben habe hatte ich zu Testzwecken(sollte ja schnell funktionieren) den connect zur DB hart rein gecoded, also auf jeden Ajax-Table-Request wurde eine neue PDOInstanz erzeugt. Leider ist das „zu Testzwecken“ dann in Vergessenheit geraden (hatte ja funktioniert und gemacht was es soll auf 5.3 wie 5.4).

Normalerweise hat die Anwendung eine Registry als Art Verwaltung und stellt sicher das jeder User nur eine Instanz des PDO besitzen darf (DB-Klasse=Singleton). Ich habe den hart coded Teil rausgeschmissen und ersetzt mit der PDOInstanz aus der Registry und siehe da alles klappt wunderbar.

Also ich habe mir den Changelog zu 5.5 und zu 5.6 angesehen mir ist nicht aufgefallen, warum es in 5.4 „reibungslos“ funktionierte aber in 5.6 zu Fehlern führte. Hat jemand dazu eine Idee?

Gruß XXD