PHP表单发布,自动映射到对象(模型绑定)

Pet*_*son 13 php model-view-controller

我做了很多ASP.NET MVC 2开发,但我正在处理一个小项目,它需要在PHP中完成.

有没有内置的PHP来进行模型绑定,将表单字段映射到类?我的一些PHP代码目前看起来像这样:

class EntryForm
{
    public $FirstName = "";
    public $LastName = "";
}

    $EntryForm = new EntryForm();

if ($_POST && $_POST["Submit"] == "Submit")
{
    $EntryForm->FirstName = trim($_POST["FirstName"]);
    $EntryForm->LastName = trim($_POST["LastName"]);
}
Run Code Online (Sandbox Code Playgroud)

是否存在内置于典型PHP安装的内容,可以像在ASP.NET MVC中找到的那样进行映射,还是需要额外的框架?

Mah*_*lid 10

不是原生的,而是一个更好的解决方案,允许您使用自己的类或标准类...

function populateWithPost ($obj = NULL)
{
  if(is_object($obj)) {

  } else {
      $obj = new StdClass ();
  }

  foreach ($_POST as $var => $value) {
      $obj->$var = trim($value); //here you can add a filter, like htmlentities ...
  }

  return $obj;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用它:

class EntryForm
{
    public $FirstName = "";
    public $LastName = "";
}

$entry = populateWithPost(new EntryForm());
Run Code Online (Sandbox Code Playgroud)

要么

 $obj = populateWithPost();
Run Code Online (Sandbox Code Playgroud)