June 2017
Intermediate to advanced
394 pages
8h 52m
English
There are some cases where generating intermediate DTOs for more complex responses like JSON, XML, CSV, and iCAL Contact could be seen as an unnecessary overhead. We could output the representation in a buffer and ask for it later on the delivery side.
Transformers help reduce this overhead by transforming high-level Domain concepts into low-level client details. Let's see an example:
interface UserDataTransformer{ public function write(User $user); /** * @return mixed */ public function read();}
Consider the case of generating different data representations for a given product. Usually, the product information is served through a web interface (HTML), but we might be interested in offering other formats, like XML, JSON, ...