Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @param array $input []
- * @param Dto $target_class
- * @return $source_class[]
- * @throws ReflectionException
- */
- private function toDTO($input, $target_class)
- {
- $input = json_decode(json_encode((array)$input), true);
- $dtoResults = [];
- foreach ($input as $singleInput) {
- $out = new ReflectionClass($target_class);
- $out = $out->newInstance();
- if (!$out instanceof Dto) {
- return ['Class is not Dto'];
- }
- $fields = get_class_vars($target_class);
- $setters = [];
- foreach ($fields as $field => $v) {
- $setters[] = ['setter' => OmegaService::camelCase("set_" . $field), 'value' => $singleInput[$field]];
- }
- foreach ($setters as $setter) {
- $call = new ReflectionMethod($out, $setter['setter']);
- $call->invokeArgs($out, [$setter['value']]);
- }
- $dtoResults[] = $out;
- }
- return $dtoResults;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement