| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | <?php namespace Api\Lib\Platform;use Dever;class Request{    public function __construct($field, $platform_id, $type, $type_id)    {        $this->field = $field;        $this->platform_id = $platform_id;        $this->type = $type;        $this->type_id = $type_id;    }    public function body()    {        $body = [];        $this->field->setBody($body);        $this->load($body, 'body');        $this->field->setBodyJson($body ? Dever::json_encode($body) : '');        return $body;    }    public function header()    {        $header = [];        $this->field->setHeader($header);        $this->load($header, 'header');        $this->field->setHeaderJson($header ? Dever::json_encode($header) : '');        return $header;    }    protected function load(&$data, $type)    {        $this->get($data, 'platform', $type, ['platform_id' => $this->platform_id]);        $this->get($data, $this->type, $type, [$this->type . '_id' => $this->type_id]);    }    protected function get(&$data, $prefix, $type, $where)    {        $request = Dever::db($prefix . '_request_' . $type, 'api')->select($where);        if ($request) {            foreach ($request as $k => $v) {                $value = $this->field->value($v['value'], $v['type']);                if ($value) {                    if (strstr($v['key'], '.')) {                        $keys = explode('.', $v['key']);                        $temp = &$data;                        foreach ($keys as $key) {                            $temp = &$temp[$key];                        }                        $temp = $value;                    } else {                        $data[$v['key']] = $value;                    }                    $this->field->set($v['key'], $value);                    $this->field->add($v['key'], $value, $type);                }            }        }    }}
 |