这更像是一个最佳实践问题。
假设我有一个表格:
<form action="self.php" method="POST">
<input type="text" name="aA" />
<input type="text" name="aB" />
<input type="text" name="aC" />
</form>
PHP中的相应类:
class A
{
public function getA(){
return $this->a;
}
public function setA($a){
$this->a = $a;
}
public function getB(){
return $this->b;
}
public function setB($b){
$this->b = $b;
}
public function getC(){
return $this->c;
}
public function setC($c){
$this->c = $c;
}
private $a;
private $b;
private $c;
}
不知怎的,我设法从表单发送数据。现在,我需要将表单数据转换为A的实例。
我目前正在做的是以下内容:
abstract class AStrategy {
public function doMapping(){
$a = new A();
if (isset($_POST['aA']) === true) {
$a->setA($_POST['aA']);
}
... (same for b and c)
return $a; //A completely mapped object
}
}
而且我非常清楚这是非常糟糕的做法(违反DRY)。
事先谢谢你。
答案 0 :(得分:5)
对于简单对象,请使用构造函数:
public function __construct($a, $b, $c) {
$this->a = $a;
$this->b = $b;
$this->c = $c;
}
对于更复杂的对象,请使用映射器:
class AMapper {
public function fetch(A $aObject) {}
}