For installation instructions, see http://www.amfphp.org/docs

CHANGELOG 

MS2 01/07/2005

 - Added new methodTable option (per method) "fastArray" => true|false for 
   fast array serializing on return (will only make a difference for large 
   multidimensional nested voodoo arrays)
 - Added new method Headers::getHeader($key) available from all services, 
   also HeadersFilter.php added
 - Added FrontBase support
 - Added Pear::db support
 - Added CSV-based recordsets support (to use, set returns => "csv recordset" 
   in methodTable and return an associative array containing keys 
   "cols" => array("colname1", "colname2") and "filename" => "filename.csv")
 - Renamed sql folder to adapters to fit with the CSV recordsets
 - Various bugfixes for PHP4 MethodTable class
 - Major overhaul of service browser, should work much better now
 - New actionscript template system for service browser, see browser/templates/ for examples
 - Added new return type binary that will write the value as a string but without charsetHandling
 - Added new return type raw that will write to the output stream directly (careful)
 - SSL with ie hopefully works now
 - Bugfixes

MS2 07/07/2005

 - SSL with IE issue confirmed working
 - Removed NetDebug::trace calls in debugging fastArray

MS2 07/21/2005

 - Completely reimplemented util/MethodTable using PHP tokenizer
 - Added PDO adapter
 - Added automatic PEAR::DB and PDO recognition
 - Fixed trigger_error in PHP4

MS2 07/22/2005

 - Tweaks to generated code
 - Further improvements in MethodTable.php
 
MS2 97/08/2005

 - non user-errors in PHP5 return correct line number
 - PHP5 root error is returned instead of last error if there are multiple 
   exceptions in exceptionStack
 - PHP5 "code" attribute in errors returned correctly
 - unserialized object references return "(unresolved object #n)"
   instead of null, change the name of readFlushedSO to readReference and
   thus solved the mistery of type 0x07
 - Protection for circular references in serializer (only works with 
   objects)
   
MS2 10/09/2005

 - Security enhancement for _authenticate: AMFPHP replaces credentials with a cleared header
   after each call to setCredentials, so username and password are passed only once
   when using authentication. Note: this behaviour is different from previous behaviour
   and may break some installations
 - New test suite actionscript generation in browser for test purposes
 - New, better IE SSL support

MS2 16/09/2005

 - Bug fix: strlen() > 2^16 won't break serializer 
   (strings are truncated to 64000 characters. Type as XML if you require longer strings)
 - new gateway methods: logIncomingMessages and logOutgoingMessages
 - Sample deserializer file in extra folder for reverse engineering / debugging purposes
 - Tweaks to service browser to handle custom AMFPHP installation situations
 - Changed ReplaceGatewayUrl to AppendToGatewayUrl so https won't redirect to http
 - New gateway methods: addAdapterMapping for classes -> recordset mapping

MS3 23/09/2005
 
 - Automatic typing of MySQLi oo-style results
 - Solved uncaught exception if attempting to load a service in a folder that doesn't exist
 - Introduced possibility of using MethodTable::create(__FILE__)
 - More verbose errors in MethodTable::create
 - Added support for type 0x0C, long string, no need to type as XML anymore
 - Refined MixedArray (0x08) handling
 
MS3 05/10/2005
 
  - Custom classes return correct case if "returns" is set
  - Templating system does not rely on relative paths
  - Corrected syntax error in ODBC adapter
  
MS3 11/10/2005
 
  - Deactivated logIncomingMessages and logOutgoingMessages in gateway.php
  
MS3 09/11/2005
  
  - Corrected notices in php4Exception.php, and stoppeed logging to a hard-coded filename
  - Put calls to translitereate in Gateway.php before an if on content
    so any charset errors should show up on opening gateway.php
  - Added long string support for database adapters
  
1.0 25/12/2005

  - docs committed
  - site updated
  - second SSL method added
  - issues with null arrays solved
  
1.0.1 07/01/2006

  - Issue with returns and pageable recordsets solved
  - Issue with MethodTable::create and @returns with multiple words solved
  - Cleaned up IE SSL handling
  - Automatic typing of common XML types (domxml, simpleXML)
  - PHP4 errors should work beyond the first error
  - XML return types are stripped of whitespace
  
1.1.0 30/01/2006

  - Introduction of the debuggateway.php, the final nail in the coffin 
    of NetConnection.Call.BadVersion
  - Various bugfixes

1.1.1 30/01/2006

  - Debug gateway now forwards session id so sessions work properly

1.1.2 02/02/2006

  - Debug gateway should find regular gateway properly if not installed in root
  
1.2.0 beta 26/02/2006

  - Major overhaul of the service browser, now features test capability
  - change of directory structure to amf-core, services and browser
  - cleanup of dead code, amf-core now takes 40% less disk space
  - Mods to recordset adapters to reset recordset before serializing
  - Comprehensive class mapping
  
1.2.0 25/03/2006

  - A bunch of bug fixes, such as:
  - Fixed AMF corruption issues with outputted dates
  - Fixed PHP5 SOAP support
  - Standardized error codes: AMFPHP_RUNTIME_ERROR for runtime errors, AMFPHP_AUTH_MISMATCH for
    login auth errors, etc.
  - throw new Exception("error", CODE) now overrides AMFPHP_RUNTIME_ERROR for custom
    error codes
  - Fixed bugs in PEAR::DB and oracle drivers
  - Service browser now works without cURL thanks to PEAR libraries
  - Changed error output so it looks more like ColdFusion Remoting errors
  - Made actions and filters not classes anymore since they never used members for much 
    reduced resource usage
  - Added new code types in service browser, including ARP, ability to save code
  - Ability to save methodTable from service browser
  - Updated docs
  - Restricted AMFPHP globals to the $GLOBALS['amfphp'] array, presets now in app/Globals.php
  - Fixed pageable recordset support
  - New reusable AMFClient class in browser/client
  
1.2.4

  - Corrected unclosed comment in ARP code generator
  
1.2.5

  - Fixed issue with getClassPath
  - Fixed MethodTable not recognizing encapsulated variables
  - Modified ServiceBrowser for private/public methods
  - Fixed bug in class loader for class name finding with packages
  - Added correct typing for AdoDB with MySQL databases