gpt4 book ai didi

PHP 将 $_POST 数据映射到对象

转载 作者:行者123 更新时间:2023-12-02 04:52:37 26 4
gpt4 key购买 nike

这更像是一个最佳实践问题。

假设我有一个表单:

<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)。

  • 执行此操作的最佳做​​法是什么?
  • 如果我有一个复杂的对象树怎么办?如果我需要同时映射相关对象怎么办?
  • 谁应该做映射?谁应该创建对象等等?

先谢谢你。

最佳答案

对于简单的对象,使用构造函数:

public function __construct($a, $b, $c) {
$this->a = $a;
$this->b = $b;
$this->c = $c;
}

对于更复杂的对象,使用Mapper:

class AMapper {
public function fetch(A $aObject) {}
}

关于PHP 将 $_POST 数据映射到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com