From 729d09339159d00a0400cc59f39ef3ccb6504539 Mon Sep 17 00:00:00 2001 From: John Webb Date: Tue, 29 Jul 2014 10:00:01 -0500 Subject: [PATCH] Added DataMapper UML --- Structural/DataMapper/uml/uml.png | Bin 0 -> 13221 bytes Structural/DataMapper/uml/uml.svg | 1 + 2 files changed, 1 insertion(+) create mode 100644 Structural/DataMapper/uml/uml.png create mode 100644 Structural/DataMapper/uml/uml.svg diff --git a/Structural/DataMapper/uml/uml.png b/Structural/DataMapper/uml/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..dedbddd37f7f219e30f38b1d2422df21f1ce978b GIT binary patch literal 13221 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 $userIdprotected $usernameprotected $email__construct($id = null, $username = null, $email = null)getUserId()setUserID($userId)getUsername()setUsername($username)getEmail()setEmail($email)UserMapperprotected $adapter__construct(DBAL $dbLayer)save(User $user)findById($id)findAll()mapObject(array $row) \ No newline at end of file