Feature #5612

Property Mapper should be able to map to target if only a setter exists

Added by Robert Lemke almost 10 years ago. Updated almost 9 years ago.

Status:
Resolved
Priority:
Should have
Category:
Property
Start date:
2009-12-03
Due date:
% Done:

100%

PHP Version:
Has patch:
Complexity:

Description

The property mapper checks if it can set a certain property in the target by consulting the Class Schema of the target class. This assumes that a class property of the same name must exist in order to set a property.

However, we use the ObjectAccess API to ultimately set the property which does not require such class property. It could easily be that only a setter method exists which stores the property somewhere else and this should be sufficient to map the property.

Therefore the map function needs to be refactored to use information from ObjectAccess::isPropertySettable / isPropertyGettable instead of relying on the class schema.


Related issues

Related to TYPO3.Flow - Bug #6005: ObjectAccess::getProperty() behaves not as documented when property does not exist Resolved 2010-01-13

Associated revisions

Revision a141272f (diff)
Added by Karsten Dambekalns over 9 years ago

[+FEATURE] FLOW3 (Property): The PropertyMapper now only maps to settable properties and no longer relies on the class schema to determine the type for the target property - it uses the setter parameter's type if available and falls back to the class schema if needed. Resolves #5612.
[+FEATURE] FLOW3 (Reflection): When reflecting classes entities and value objects are checked for being declared prototype, resolves #6141.
[+FEATURE] FLOW3 (Reflection): ClassSchema now enforces consistency when it comes to value objects and identity/identifier properties, resolves #6140, resolves #6142.
[+BUGFIX] FLOW3 (Persistence): Fixed left over JCR constant in AbstractSqlBackend, fixes #6153.

History

#1 Updated by Karsten Dambekalns over 9 years ago

  • Status changed from New to Accepted
  • Assignee set to Karsten Dambekalns
  • Target version set to 1.0 alpha 8

#2 Updated by Karsten Dambekalns over 9 years ago

  • Status changed from Accepted to Resolved
  • % Done changed from 0 to 100

Applied in changeset r3746.

Also available in: Atom PDF