Posted on Sunday 26 June 2005
As promised, here is AMFPHP 1.0, milestone 1. This is probably the last or second-to-last release before the official 1.0 release. Changes include:
- New implementation of pageable recordsets
- New implementation of all SQL drivers to back port MySQL speed tweaks, will most likely break anything but MySQL (please document the errors and send them my way, $patrick->5etdemi(com))
- New SQL drivers: Frontbase and mysqlf (f for filtered, example will be posted on the wiki)
- Service browser update (thanks Christophe Herreman)
- MethodTable class update (thanks again to Christophe)
- Various bug fixes: alias in methodTable, call-time-pass-by-reference, etc.
- SSL should work on second call (thanks to Clément Arnoux)
- FlashComm compatibility misc. fixes
- More robust error handling for PHP5
- clib/RemoteDebuggingService.php is included by default in services for squashing NetConnection.Call.BadVersion.
- New PRODUCTION_SERVER constant in gateway.php that disables traces, debugging headers and such
- Other stuff I can't remember right now
Also since a lot of people are listening I want to point out what I think is the most significant (and also the simplest) advance in AMFPHP related to debugging: NetDebug::trace(). I'm sure you knew you could do this in Flash:
import mx.remoting.debug.NetDebug;
NetDebug.trace('Stuff');
But how about this in PHP:
NetDebug::trace("A remote method was called");
Like the client side NetDebug.trace this will also work with objects and arrays. What I've done for a recent project is hook the NetDebug::trace function into the database abstraction layer's logging feature, so I can see all the SQL that is being executed on the server. But what happens when I want to deploy? Then I set the PRODUCTION_SERVER constant to true in gateway.php and the traces are never sent back to the client. With the RemoteDebuggingService tweak I mentioned earlier, this makes debugging AMFPHP orders of magnitude simpler than it used to be. Here's what it looks like:

I know, quite pimp indeed. Enjoy!


