diff --git a/Structural/DataMapper/README.md b/Structural/DataMapper/README.md index 61245de..70efe20 100644 --- a/Structural/DataMapper/README.md +++ b/Structural/DataMapper/README.md @@ -16,3 +16,7 @@ The key point of this pattern is, unlike Active Record pattern, the data model f ## Examples * DB Object Relational Mapper (ORM) : Doctrine2 uses DAO named as "EntityRepository" + +## UML Diagram + +![Alt DataMapper UML Diagram](uml/uml.png) diff --git a/Structural/DataMapper/uml/uml.png b/Structural/DataMapper/uml/uml.png new file mode 100644 index 0000000..748156f Binary files /dev/null and b/Structural/DataMapper/uml/uml.png differ diff --git a/Structural/DataMapper/uml/uml.svg b/Structural/DataMapper/uml/uml.svg new file mode 100644 index 0000000..dd55c94 --- /dev/null +++ b/Structural/DataMapper/uml/uml.svg @@ -0,0 +1 @@ +... (skipping 20 lines) ...+mapObject(array $row)}UserSyntax Error? \ No newline at end of file diff --git a/Structural/DataMapper/uml/uml.txt b/Structural/DataMapper/uml/uml.txt new file mode 100644 index 0000000..6fb4c02 --- /dev/null +++ b/Structural/DataMapper/uml/uml.txt @@ -0,0 +1,26 @@ +@startuml +class User { + protected $userId + protected $username + protected $email + +__construct($id = null, $username = null, $email = null) + +getUserId() + +setUserID($userId) + +getUsername() + +setUsername($username) + +getEmail() + +setEmail($email) +} + +class UserMapper { + protected $adapter + +__construct(DBAL $dbLayer) + +save(User $user) + +findById($id) + +findAll() + +mapObject(array $row) +} + +User +UserMapper +@enduml \ No newline at end of file