/** * url * * @param int $size * @param int $id * @param string $u * * @return string */ public static function url($size = 300, $id = null, $u = null) { $uri = new Uri(static::$host); $size = $size ?: 300; $uri->setPath('/' . $size); if ($id) { $uri->setVar('id', (int) $id); } if ($u) { $uri->setVar('u', $u); } return $uri->toString(); }
/** * getSuccessRedirect * * @param DataInterface|Entity $data * * @return string */ protected function getSuccessRedirect(DataInterface $data = null) { $uri = new Uri($this->app->uri->full); foreach ($this->getRedirectQuery() as $field => $value) { $uri->setVar($field, $value); } return $uri->toString(); }
/** * Prepare Request object to send request. * * @param RequestInterface $request The Psr Request object. * @param string $method The method type. * @param string|object $url The URL to request, may be string or Uri object. * @param mixed $data The request body data, can be an array of POST data. * @param array $headers The headers array. * * @return RequestInterface */ protected function prepareRequest(RequestInterface $request, $method, $url, $data, $headers) { $url = (string) $url; // If is GET, we merge data into URL. if (strtoupper($method) == 'GET' && is_array($data)) { $url = new Uri($url); foreach ($data as $k => $v) { $url->setVar($k, $v); } $url = (string) $url; $data = null; } // If not GET, convert data to query string. if (is_array($data)) { $data = UriHelper::buildQuery($data); } /** @var RequestInterface $request */ $request->getBody()->write((string) $data); $request = $request->withRequestTarget((string) new PsrUri($url))->withMethod($method); // Set global headers foreach ((array) $this->getOption('headers') as $key => $value) { $request = $request->withHeader($key, $value); } // Override with this method foreach ($headers as $key => $value) { $request = $request->withHeader($key, $value); } return $request; }
/** * Test the setVar method. * * @return void * * @since 1.0 * @covers Windwalker\Uri\Uri::setVar */ public function testSetVar() { $this->object->setVar('somevariable', 'somevalue'); $this->assertThat($this->object->getVar('somevariable'), $this->equalTo('somevalue')); }