Extbase:
(Changes by Jochen) This commit merges the rewrite of the persistence layer back to trunk. It will probably break your existing installation. Please check out fluid and blog_example again. * Implemented an Object Manager (a wrapper for t3lib_div::makeInstance()) * !!! Backport of the Query and the Query Object Model from FLOW3. * !!! Removed Repository->fetch*() * Splited the functionality of the Object Relational Mapper into the Persistence Backend, the Data Mapper and the SQL Storage Backend. * Implemented the Lazy Loading Proxy. * supported Request types is now Tx_Extbase_MVC_Request instead of Tx_Extbase_MVC_Web_Request. * Changed _reconstituteProperty() to _setProperty() (according to FLOW3). * Added _getProperty() to the Domain Object. * The Dispatcher now instanciates and uses a PersistenceManager to commit changes. * Added TypoScript converter method (to convert from new TS to classic TS). Fixes #3293. * Renamed SqlBackend to Typo3DbBackend * Now using constants in Tx_Extbase_Persistence_PropertyType instead of Tx_Extbase_Persistence_Mapper_ColumnMap * Improved conversion from table value to property value * Persistence_Repository: findByUid() checks now for positive integer * Fixed: Only Aggregate Roots are now registered as Reconstituted Objects * !!! Added _isNew() to the Domain Object Interface * Revision of the Persistence Backend (CRUD operations work now - again) * Fixed Query Object Model "UpperCase" * Implemented addRow(), deleteRow() and updateRow() * Fixed: _memorizeCleanState() now clones a property value if it is an object * Argument->findObjectByUid() memorizes now the clean state (todo: check if the object is an Aggregate Root) * Removed unnecessary method getRelations() * Fixed wrong class name of PropertyError; resolves issue #3855 * Fixed typo in Persistence Query; resolves issue #3831 * Changed: Equivalent Value Objects (all properties are equal) are now persisted only once * Backport and enhanced several Unit Tests (not finished yet) * Enhanced Base Test Case * Changed signature of hasValueObject() * Changed: hasValueObject() returns the uid of the already persisted value object - if any * Fixed: relation tables are now filled with the right values if a value object already exists in the database * Changed: The Persistence Manager and the Query Factory are now "injected" into the Arguments and Argument * Deleted obsolete files