Data Transfer Object
Ein DTO ist ein immutable (unveränderbares) Objekt. Diese repräsentieren Daten. Sie haben auch keine setter Methoden. Daten werden einmal über den Konstruktor eingefügt. Ein Beispiel für ein DTO ist folgender Code:
class DTO
{
private $entity;
public static function make($model)
{
return new self($model);
}
public function __construct($model)
{
$this->entity = (object) $model->toArray();
}
public function __get($name)
{
return $this->entity->{$name};
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Ein solches DTO wird dann wie folgt verwendet:
public function user (Request $request)
{
$user = $this->userService->getUserById($request->id);
$user = DTO::make($user);
return view('user.index', compact('user'));
}
1
2
3
4
5
6
2
3
4
5
6