diff --git a/DataMapper/Test.php b/DataMapper/Test.php index 7aba20e..a81f3d7 100644 --- a/DataMapper/Test.php +++ b/DataMapper/Test.php @@ -10,10 +10,18 @@ namespace DesignPatterns; $userMapper = new UserMapper(); - $user = $userMapper->find(1); + // fetch a record from Database + $user = $userMapper->findById(1); if ($user !== null) { echo "Hello " . $user->getUsername() . ". Your email is " . $user->getEmail(); } + // save a new record on Database + var $newUser = new User('', 'Odysseus', 'Odysseus@ithaca.gr'); + $userMapper->save($newUser); + + // fetch all from a table on Database + var $user = $userMapper->findAll(); + ?> \ No newline at end of file diff --git a/DataMapper/User.php b/DataMapper/User.php index 8edfa69..dd19cbe 100644 --- a/DataMapper/User.php +++ b/DataMapper/User.php @@ -14,11 +14,11 @@ class User protected $username; protected $email; - public function __construct(array $options = null) + public function __construct($id, $username, $email) { - if (is_array($options)) { - $this->setOptions($options); - } + $this->id = $id; + $this->username = $username; + $this->email = $email; } public function getUserId() { diff --git a/DataMapper/UserMapper.php b/DataMapper/UserMapper.php index 0688564..1672800 100644 --- a/DataMapper/UserMapper.php +++ b/DataMapper/UserMapper.php @@ -31,8 +31,8 @@ class UserMapper /** * create new Database connector on $_adapter using specific table * - * $_adapter var could be a specific to a table class or a generic interface for - * connecting to Database and do certain jobs + * $_adapter var could be a specific to a table class or a generic + * interface for connecting to Database and do certain jobs */ } @@ -43,12 +43,14 @@ class UserMapper */ public function save(User $user) { + // $data keys shoulds correspond to valid Table columns on the Database $data = array( 'userid' => $user->getUserId(), 'username' => $user->getUsername(), 'email' => $user->getEmail(), ); + // if no ID specified create new user else update the one in the Database if (null === ($id = $user->getUserId())) { unset($data['userid']); $this->_adapter->insert($data);