예제 #1
0
 /**
  * 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();
 }
예제 #2
0
 /**
  * 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();
 }
예제 #3
0
 /**
  * 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;
 }
예제 #4
0
 /**
  * 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'));
 }