Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP对象映射的最佳方式_Php_Json_Api - Fatal编程技术网

PHP对象映射的最佳方式

PHP对象映射的最佳方式,php,json,api,Php,Json,Api,我正在创建RESTAPI时遇到了一个问题 我们的客户向我们提出了要求,他想为我们发送: json示例: { "request": { "name": "John", "surname": "Snow", "age": "19" } } 我的用户模型类如下所示: class User { public $firstName; public $latName; public $age; } 从给定

我正在创建RESTAPI时遇到了一个问题

我们的客户向我们提出了要求,他想为我们发送:

json示例:

    {
    "request": {
        "name": "John",
        "surname": "Snow",
        "age": "19"
    }
}
我的用户模型类如下所示:

class User
{
    public $firstName;

    public $latName;

    public $age;
}
从给定的json设置对象的最佳方法是什么?使用一些现有库或编写自定义映射器


我对发明自行车不感兴趣。

我个人认为:

class User
{
    public static function fromArray($array)
    {
        $user = new User();
        $user->firstName = $array['name'];
        ...
        return $user;
    }
}
然后使用以下命令实例化:

$user = User::fromArray($responseFromWhatever);

即使使用ready库,也需要创建属性映射器。如果库开销对你的项目来说是个好主意,你必须自己回答。好问题。回答不好,使用stdClass而不是数组。另外,无论其中一个字段是否丢失,或者是否有一个不在模型中的额外字段,我都会抛出错误。