1.7.1 - [RELEASEDATE] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #15657: Column names are now converted to lower case to extract from database results, since this is the setting defined by the Database component. - Fixed issue #16135: ezcPersistentCodeManager now supports PHP 5.3 namespaces. 1.7 - Monday 21 December 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes. 1.7rc1 - Monday 07 December 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes. 1.7beta1 - Monday 23 November 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes. 1.7alpha1 - Tuesday 01 September 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Implemented enhancement #11831: ezcPersistentSession and ezcPersistentSessionIdentityDecorator now provide the method isRelated() to check if two objects are related to each other. - Implemented enhancement #13073: The new createSubQuery() method on persistence sessions can be used to create a sub-select for a find query. - Implemented enhancement #14154: Property converters are now also called for null values. - Implemented enhancement #14158: If an object to be loaded is not found, an ezcPersistentObjectNotFoundException is thrown. 1.6 - Monday 29 June 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed message in testcase. 1.6rc1 - Monday 22 June 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes. 1.6beta1 - Monday 08 June 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Note: This release changes the indexing of arrays returns by ezcPersistentSession and its decorators. These arrays are now indexed by object IDs. 1.6alpha2 - Tuesday 26 May 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Renamed ezcPersistentIdentitySession to ezcPersistentSessionIdentityDecorator. - Introduced new ezcPersistentSessionFoundation interface, for ezcPersistentSession and its decorators. - Finalized implementation of identity management and relation pre-fetching. 1.6alpha1 - Tuesday 21 April 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Started implementation of #12473: PersistentObject now supports basic identity management. 1.5.2 - Monday 11 May 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #14736: ezcPersistentSession->createRelationFindQuery() now supports relation names. - Fixed issue #14863: ezcPersistentSessionInstance::reset() is now static and does work correctly. - Fixed issue #14690: Extracted duplicated code into methods and avoided to instantiate a new generator object for each save/update (based on a patch by Benjamin Eberlei). 1.5.1 - Monday 30 March 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #14473: ezcPersistentFindIterator does not overwrite object instances anymore. - Fixed issue #14505: Property converters don't break the state of newly saved objects anymore. 1.5 - Monday 05 January 2009 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes 1.5rc1 - Monday 15 December 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes 1.5beta1 - Monday 01 December 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #13463: Enhanced documentation for clarity about state array indices. 1.5alpha1 - Monday 10 November 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Implemented issue #13218: Add lazy initialization to PersistentObject component. - Implemented issue #13558: Small optimizations in the load handler. 1.4 - Monday 16 June 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes. 1.4rc1 - Tuesday 10 June 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes 1.4beta1 - Tuesday 27 May 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - No changes. 1.4alpha1 - Monday 05 May 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Refactored ezcPersistentSession. - Implemented enhancement #10151: Improved Database and PersistentObject datatype support (especially binary data). The object definitions allow to specify the datatype of the database column assigned to a property. - Implemented enhancement #10373: Several relations to the same table for PersistentObject. - Implemented enhancement #10727: Improved error messages for PersistentObject with ManualGenerator. - Fixed issue #10205: Binding variables with an undeclared var doesn't throw an exception. If getState() on a persistent object does not return an array an exception is thrown now. - Fixed issue #12471: PersistentObject misses support for boolean datatype. 1.3.4 - Monday 14 January 2008 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #12053: Optimized substr() call. - Fixed issue #12108: ezcPersistentStateTransformer::rowToStateArray() relying on definitions with reverse properties set, but it's not automatic. 1.3.3 - Monday 17 December 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #12214: persistent object documentation error. (Simple mapping example now uses ezcPersistentNativeGenerator and gives a hint on ezcPersistentSequenceGenerator.) 1.3.2 - Wednesday 28 November 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Documentation updates and fixes. - Fixed issue #11405: Ambiguous column names when using ezcPersistentManyToManyRelation. Column names are now correctly prefixed with their corresponding table names. - Fixed issue #12082: Restoring a definition from var_export( $definition ) PHP code. 1.3.1 - Monday 13 August 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Documentation updates and fixes. 1.3 - Monday 02 July 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Documentation updates and fixes. 1.3rc1 - Monday 25 June 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Documentation updates and fixes. 1.3beta2 - Thursday 31 May 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #10152: Persistent Object and manual generator: string primary keys. - Fixed issue #10552: ManyToMany relations with multiple columns. Mapping works correctly now. - Fixed issue #10331: PersistentObject: Exceptions should become more verbose. ezcPersistentQueryException now contains the SQL query in its message, if appropriate. - Fixed issue #10725: PersistentObject saveOrUpdate() using manualgenerator will trigger one extra query to check if an object is persistent (save() and update() do this as well just moments later...). - Fixed issue #10726: PersistentObject definition should contain type info on the identifier. - Fixed issue #10770: PersistentObject throws PDOException in some cases. Throws correct ezcPersistentQueryException now. 1.3beta1 - Monday 07 May 2007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed testcase for manual generator giving failure for postgresql on correct behaviour (INSERT violating NULL contraint does give an error...). - Fixed issue #9999: idProperty missing in definition file causes unclear error messages. - Fixed issue #10106: ezcPersistentManualGenerator does not quote ID columnName. - Fixed issue #10112: Lots of failures in PersistentObject tests with PostgreSQL. - Fixed issue #10153: Persistent Object and manual generator (negative and 0 primary keys). - Fixed issue #10369: testAddRelatedBirthdayToPerson3UpdateSuccess fails for no apparant reason. - Implemented feature #8487: An interface for Persistent Objects. - Implemented feature #10166: Cache PO-definitions. - Implemented feature #9967: PersistentObject: getRelationQuery() method. This method is now called createRelationFindQuery() and is public now. - Implemented feature #9089: Make some methods public. ezcPersistentSession->generateAliasMap() and ->getColumnsFromDefinition() are public now. 1.2 - Monday 18 December 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #9249: Save/update objects with 1:1 relations that share the same ID does not work. - Fixed issue #9489: Check whether the PersistentObject and PersistentObjectDatabaseSchemaTiein tutorials are interlinked. - Fixed issue #9493: Convert < and > in exception messages to ' and ' for Cache, ConsoleTools, ImageAnalysis, ImageConversion, PersistentObject, PersistentObjectDatabaseSchemaTiein. - Fixed issue #9591: ezcPersistentSession attempts to throw non existing exception (typo). - Fixed issue #9819: Let all components deal with the ezcBaseAutoloadException properly. 1.2beta2 - Monday 20 November 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed issue #8962: "Sequence Generator" incorrect name for MySQL. MySQL should use the new "ezcPersistentNativeGenerator" from now, with auto_increment. "ezcPersistentSequenceGenerator" dispatches to this for BC reasons. - Fixed issue #9248: SQLite driver throws wierd exception. - Fixed issue #9335: PersistentSession should use object->getState() in all methods rather than accessing objects properties directly. 1.2beta1 - Tuesday 24 October 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed bug #8340: Column names are not escaped. - Fixed bug #8489: Show the absolute path in the "cannot find definition file" exception message. - Fixed bug #8511: @access private for the 'id generator' classes. - Fixed bug #8663: Undeclared property "type" used instead of "propertyType" in ezcPersistentObjectProperty. This property is not used until now. And causes no change in the usage of the system. - Fixed bug #9059: Incorrect prototype of ezcPersistentSession->__construct(). - Fixed bug #9187: ezcPersistentObjectDefition->__construct() has orphan parameters. - Fixed bug #9189: ezcPersistentObjectProperty->__set_state() does not work correcty. - Implemented suggestion #8526: Allow retrieving of the database handler and definition manager through the database and definitionManager properties of the ezcPersistentObjectSession class to help with transaction support. - Implemented suggestion #8595: Added the ezcPersistentMultiManager class that serves as a singleton mechanism for ezcPersistentSession. - Implemented suggestion #8664: ezcPersistentSession: Cast values and skip undefined properties. Patch by Joel Arvidsson. - Added support for several definition managers through ezcPersistentMultiManager. - Added the method ezcPersistentFindIterator::flush method that flushes the rest of the resultset from an iterator. This method must be called if you decide not to loop over the complete resultset of an iterator. - Deprecated the constructor parameters $key and $incrementKey to ezcPersistentObjectDefinition. 1.1 - Monday 12 June 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed small CS issues. 1.1rc1 - Monday 29 May 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Implemented feature request 8248: ezcPersistentSession should throw more descriptive exceptions. 1.1beta1 - Tuesday 09 May 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed #7884: ezcPersistentSession sometimes triggers PDO "General error: 2014" exceptions. - Fixed #8042: PersistentObject requires use of database ID counter. *Note:* The change involves a slight BC incompatible change. ezcPersistentIdentifierGenerator is no longer an interface but an abstract class. Implementors must change 'implements' to 'extends' to reflect this. - Added ezcPersistentManualGenerator which can be used to set the ID's of new object manually. 1.0.1 - Monday 20 February 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed #7845: Find fetches all columns and not just the required columns. 1.0 - Monday 30 January 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Fixed faulty numeric id check in ezcPersistentSession::loadIntoObject(). 1.0rc1 - Monday 16 January 2006 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Added new methods to ezcPersistentSession: * removeFromQuery() * updateFromQuery() * findIterator which returns a ezcResultIterator - Added support for table and column aliases. - Added sequence strategy system, which makes this component also work with PostGreSQL. - Changed exception behavior. All errors will now throw a different exception class. - Added interfaces and classes: * ezcPersistentIdentifierGenerator that defines the interface between ezcPersistentSession and the code creating unique ID's for new rows. * ezcPersistentSequenceGenerator that implements the ID generation using sequence functionality in the database handlers. * ezcPersistentGeneratorDefinition to set up what generator to use in the definition. 1.0beta1 - Friday 23 December 2005 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Initial release of this package.