/** * get back a the view results. * Example: * $params = array( * 'startkey'=>'bear', * 'endkey'=>'zebra', * 'connection_timeout'=> 60000, * 'limit'=>10, * 'skip'=>0, * 'full_set'=>'true', * ); * $result = $view->query('mammals' $params); * */ public function query($view, $params = NULL) { $params = new Container($params); foreach ($params as $k => $v) { if (!is_scalar($v) || preg_match('#key#i', $k)) { $params->{$k} = json_encode($v); } } $len = strlen($this->app); $app = $len > 0 ? $this->app : 'default/'; $http = $this->request('_design/' . $app . '_view/' . $view . '/?' . \Gaia\Http\Util::buildQuery($params->all())); $response = $this->validateResponse($http->exec(), array(200)); $result = $response->body; if ($len < 1) { return $result; } foreach ($result['rows'] as &$row) { if (isset($row['id'])) { $row['id'] = substr($row['id'], $len); } } return $result; }
} $dt = "\n[" . date('H:i:s') . '] '; echo $dt . str_replace("\n", $dt, trim($v)); }); $debugger("kicking off job runner ...\n---------------------"); Job::config()->setHandler(function (Http\Request $request) use($debugger) { $out = "\nHTTP"; if ($request->id) { $out .= " - " . $request->id; } $info = $request->response; if ($info->http_code != 200) { $out .= '-ERR'; } $out .= ": " . $info->url; $post = substr(is_array($request->post) ? \Gaia\Http\Util::buildQuery($request->post) : $request->post, 0, 75); $out .= ' ' . $post; if (strlen($post) >= 75) { $out .= ' ...'; } if (strlen($info->response_header) < 1) { $out .= " - NO RESPONSE"; } else { if ($post) { $post .= "\n"; } $out .= "\n------\n"; $out .= "\n" . $info->request_header . $post . $info->response_header; $out .= "\n------\n"; } $debugger($out);
$out .= " - " . $job->id; } if ($info->http_code != 200) { $out .= '-ERR'; } $out .= ": " . $info->url; if ($info->http_code == 200) { $debugger($out); if ($job->persistent_timeout && $job->persistent_timeout > time()) { $conn_pool[] = array('timeout' => $job->persistent_timeout, 'resource' => $job->resource); } else { $job->close(); } return; } $post = substr(is_array($job->post) ? \Gaia\Http\Util::buildQuery($job->post) : $job->post, 0, 75); $out .= ' ' . $post; if (strlen($post) >= 75) { $out .= ' ...'; } if (strlen($info->response_header) < 1) { $out .= " - NO RESPONSE"; } else { $out .= "\n------\n"; $out .= "\n" . $info->request_header; $out .= "\n" . $info->response_header . $info->body; $out .= "\n------\n"; } $debugger($out); }); $register = function () use($runner) {