mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-08-05 14:37:27 +02:00
added DataMapper Example
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace DesignPatterns;
|
||||
|
||||
/**
|
||||
* DataMapper pattern
|
||||
*
|
||||
* This is our representation of a DataBase record in the memory
|
||||
*
|
||||
*/
|
||||
class User
|
||||
{
|
||||
protected $userId;
|
||||
@@ -13,39 +21,6 @@ class User
|
||||
}
|
||||
}
|
||||
|
||||
public function __set($name, $value)
|
||||
{
|
||||
$method = 'set' . $name;
|
||||
if (('mapper' == $name) || !method_exists($this, $method)) {
|
||||
throw new Exception('Invalid Offer property');
|
||||
}
|
||||
$this->$method($value);
|
||||
}
|
||||
|
||||
public function __get($name)
|
||||
{
|
||||
$method = 'get' . $name;
|
||||
if (('mapper' == $name) || !method_exists($this, $method)) {
|
||||
throw new Exception('Invalid Offer property');
|
||||
}
|
||||
return $this->$method();
|
||||
}
|
||||
|
||||
public function setOptions(array $options)
|
||||
{
|
||||
$methods = get_class_methods($this);
|
||||
|
||||
foreach ($options as $key => $value) {
|
||||
$method = 'set' . ucfirst($key);
|
||||
|
||||
if (in_array($method, $methods)) {
|
||||
$this->$method($value);
|
||||
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getUserId() {
|
||||
return $this->userId;
|
||||
}
|
||||
|
Reference in New Issue
Block a user