Defining a mapper
A mapper or data mapper works in much the same manner as a hydrator: converting data from one model, be it array or object, into another. A critical difference is that the hydrator is generic and does not need to have object property names pre-programmed, whereas the mapper is the opposite: it needs precise information on property names for both models. In this recipe we will demonstrate the use of a mapper to convert data from one database table into another.
How to do it...
We first define a
Application\Database\Mapper\FieldConfig
class, which contains mapping instructions for individual fields. We also define appropriate class constants:namespace Application\Database\Mapper; use InvalidArgumentException; class FieldConfig { const ERROR_SOURCE = 'ERROR: need to specify destTable and/or source'; const ERROR_DEST = 'ERROR: need to specify either ' . 'both destTable and destCol or neither';
Key properties are defined along with the appropriate class constants...