Release Notes

From PHRETS

1.0rc2
 + When debug_mode is turned on, the debug log now contains the body of the response from the RETS server
   - Thanks to Luke Brookhart for the suggestion and code
 + Added support for the new RETS GetObject 'Preferred' header.
   - See http://retsdoc.onconfluence.com/display/rcpcenter/RCP+79+-+Add+Prefered+flag+to+GetObject+responses
 + Added support for the new RETS optional Query/QueryType parameters.
   - See http://retsdoc.onconfluence.com/display/rcpcenter/RCP+80+-+Optional+Query
 + IsMaxrowsReached(), TotalRecordsFound() and NumRows() now take the returned pointer from SearchQuery().  If none given, defaults to last SearchQuery()
 + Search() now uses SearchQuery() behind-the-scenes but returns data as it did before
   - Thanks to Luke Brookhart for the suggestion and code submissions
 + New auto-encoding fixes.  Use "$rets->SetParam("disable_encoding_fix", true);" to turn this new feature off if it causes issues
 + Small change to better handle User-Agent Authentication
 + New auto-'Offset' feature.  The server MUST support the optional 'Offset' feature of RETS for this to work
   - Must be enabled by "$rets->SetParam("offset_support", true);"
   - When issuing:
        $search = $rets->SearchQuery($resource, $class, $query, array('Limit' => 1000) );
     if the result of the query results in more than 1,000 records, it will automatically reissue the requests necessary to get all remaining results
   - Using $rets->FetchRow($search) will return back record results for all records, not just the first 1,000
   - Thanks to Luke Brookhart for the suggestion and code submissions
 + New SetParam()'s:
   - catch_last_response: If true, $rets->GetLastServerResponse() will return the full body of the last response from the server
   - disable_encoding_fix: If true, turns off the auto-encoding fixes (mentioned previously)
   - offset_support: If true, SearchQuery() will automatically paginate through results until all available records are received
   - override_offset_protection: If true, overrides SearchQuery()'s infinite loop protector.
     - If false or not set, SearchQuery() will stop if it's made 300 RETS 'Search' requests in order to fulfill a SearchQuery() call


1.0rc1
 + Lots of code clean-up
 + Lots of changes to support RETS 1.7.x
 + Enhanced error checking
   - All functions will return false if there's an error keeping it from fulfilling the request
   - New Error() function.  See documentation
 + All requesting functions now confirm that they know how to make the request with the server before making it
   - Fixes issues where a failed login could go undetected resulting in 404 errors elsewhere
 + All trigger_error() calls removed by popular demand
 + GetObject changes
   - Better handling of multiple content IDs
     - Can now pass a comma-delimited list of IDs to retrieve
     - Auto-cleans leading and trailing spaces from individual content IDs
   - Better handling of multiple object IDs
     - Can now pass a comma- or colon-delimited list object IDs to retrieve
     - Auto-cleans leading and trailing spaces from individual object IDs
     - Example: $photos = $rets->GetObject("Property", "Photo", "12345,67890", "1,2,3");
       - Returns the first 3 photos for 12345 and first 3 photos for 67890
   - Fixed a small bug with detecting Content-Description in single object responses
   - Added a checker and fix for incorrect "Content-type" case headers.  Auto-corrects to "Content-Type"
 + New SearchQuery() function (to replace Search() in the future)
   - Similar to Search() except that it returns an internal pointer rather than an array
     - Large memory improvement over Search()
   - Pointer is used in new FetchRow() function.  See docs
   - Pointer is used in new FreeResult() function.  See docs
   - Pointer is used in new SearchGetFields() function.  See docs
   - FetchRow() returns ALL array keys where Search() only returns key if a value exists
   - See documentation for how to use this new function
 + Search() changes
   - Will now return an array key for fields that contain 0 as a value
 + Various other new functions
   - GetAllLookupValues()
   - GetMetadataResources()
   - GetMetadataTable()
   - GetMetadataObjects()
   - See documentation for complete list
 + New SetParam() options
   - debug_file: value is filename used for curl debug log
   - force_basic_authentication: value is true or false.  default is false
   - use_interealty_ua_auth: value is true or false.  default is false.  only use with User-Agent authentication on Interealty servers
 + SetParam() changes
   - Cookie file location is pre-set unless one is specifically set.  This makes it so calling SetParam() is optional prior to connecting.
 + AddHeader() changes
   - RETS-Version, User-Agent and Accept are now all optional.
     - This should eliminate the need to have any AddHeader() calls before connecting in most cases.  See docs
 + New FirewallTest() function
   - Quick helper function to test your system for proper connectivity to potential RETS servers.


0.6.2
 + Added additional protection against non-compliant multipart responses in GetObject
 + Added support for Query=* to Search


0.6.1
 + Fixed an issue where GetObject wouldn't see the last photo from Interealty servers


0.6
 + Added GetMetadataInfo() (special thanks to Jean-Michel)
 + Fixed an issue where a GetObject multipart boundary may not be surrounded by double quotes
 + Improved error handling by adding isset() in a ton of places
   + Keeps servers with error_reporting turned on from going crazy.  Please report other issues if found
 + Added Login XML processing support for RETS 1.0 servers
   + Will automatically recognize how to process Login response based on version
   + This makes the Login response processing RETS 1.0 compliant but other 1.0 compliance issues may remain


0.5
 + Added GetObject()
 + Changed how query within Search() is surrounded with parenthesis
   + Search() would, by default, wrap whatever query it received in parenthesis.
   + Now, it will only wrap parenthesis around the query if none exist
 + Fixed a small bug where LastRequest() information wasn't always updating in various transactions
 + Added check to make sure Lookup data is returned in valid format before trying to parse through
 + Added a 4th, optional passed variable to Connect() for the User-Agent authentication.
   + Any non-blank value will force UA-Authentication
 + Removed hack workaround for Interealty servers and UA-Authentication.
 + Fixed a small bug in Login responses where extra spaces or extra '=' characters could cause issues
 + Added new SetParam() options.
   + disable_follow_location: defaults to FALSE.  May be disabled if PHP safe_mode causes errors
   + force_au_authentication: defaults to FALSE.  Used to force UA-Authentication without a UA password
 

0.4
 + Added Search()
 + Added IsMaxrowsReached() (related to Search())
 + Added TotalRecordsFound() (related to Search())
 + Added NumRows() (related to Search())
 + Changed parser for HTTP headers.  Fixes a few issues with reading headers
   + Fixes an issue with multipart GetObject calls where headers wouldn't be recognized correctly
   + Fixes an issue where redirects or other "bouncing" would cause headers to be parsed incorrectly
 + Moved a few curl_setopt() calls from RETSRequest() to Connect() function
 + Added support for gzip compression.  Off by default.  Use "$rets->SetParam('compression_enabled', true);" to enable


0.3
 + Added GetLookupValues()
 + Added CheckAuthSupport()
 + Added GetAllTransactions()
 + Added GetServerSoftware()
 + Added GetServerVersion()
 + Added GetLoginURL()
 + Added GetServerInformation()
 + Made minor improvements to memory usage
 + Add code to clean up the cookie file after use
 + Added checker to verify all required headers are set
 + Changed XML parsing to suppress errors
   + Returns parsing error data as $rets->err
 + Added a temporary workaround for 1.5 Interealty support.  Better solution coming soon
 + Added cURL option to support redirects sent by the server automatically
 + Better detection of returned HTTP status code


0.2
 + Initial release
Views
Personal tools