本文整理汇总了PHP中Nette\Http\Url::setPath方法的典型用法代码示例。如果您正苦于以下问题:PHP Url::setPath方法的具体用法?PHP Url::setPath怎么用?PHP Url::setPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nette\Http\Url
的用法示例。
在下文中一共展示了Url::setPath方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setupCallbackUrl
protected function setupCallbackUrl()
{
//Create and setup callback URL
$this->callback_url = new Url();
$this->callback_url->setScheme('http');
$this->callback_url->setHost('ws.audioscrobbler.com');
$this->callback_url->setPath('/2.0/');
//2.0 - API version
$this->callback_url->appendQuery("api_key={$this->key}");
if ($this->data_format == self::DATA_JSON) {
$this->callback_url->appendQuery('format=json');
}
//JSON result
}
示例2: redirectToRequest
/**
* Restores request from session.
* @param string $key
*/
public function redirectToRequest($key)
{
$request = $this->requestStorage->loadRequest($key);
if (!$request) {
return;
}
$parameters = $request->getParameters();
$parameters[Presenter::FLASH_KEY] = $this->getParameter(Presenter::FLASH_KEY);
$parameters[RequestStorage::REQUEST_KEY] = $key;
$request->setParameters($parameters);
$refUrl = new Url($this->httpRequest->getUrl());
$refUrl->setPath($this->httpRequest->getUrl()->getScriptPath());
$url = $this->router->constructUrl($request, $refUrl);
$this->redirectUrl($url);
}
示例3: createRequest
/**
* Request/URL factory.
* @param PresenterComponent base
* @param string destination in format "[[module:]presenter:]action" or "signal!" or "this"
* @param array array of arguments
* @param string forward|redirect|link
* @return string URL
* @throws InvalidLinkException
* @internal
*/
protected function createRequest($component, $destination, array $args, $mode)
{
// note: createRequest supposes that saveState(), run() & tryCall() behaviour is final
// cached services for better performance
static $presenterFactory, $router, $refUrl;
if ($presenterFactory === NULL) {
$presenterFactory = $this->application->getPresenterFactory();
$router = $this->application->getRouter();
$refUrl = new Http\Url($this->httpRequest->getUrl());
$refUrl->setPath($this->httpRequest->getUrl()->getScriptPath());
}
$this->lastCreatedRequest = $this->lastCreatedRequestFlag = NULL;
// PARSE DESTINATION
// 1) fragment
$a = strpos($destination, '#');
if ($a === FALSE) {
$fragment = '';
} else {
$fragment = substr($destination, $a);
$destination = substr($destination, 0, $a);
}
// 2) ?query syntax
$a = strpos($destination, '?');
if ($a !== FALSE) {
parse_str(substr($destination, $a + 1), $args);
// requires disabled magic quotes
$destination = substr($destination, 0, $a);
}
// 3) URL scheme
$a = strpos($destination, '//');
if ($a === FALSE) {
$scheme = FALSE;
} else {
$scheme = substr($destination, 0, $a);
$destination = substr($destination, $a + 2);
}
// 4) signal or empty
if (!$component instanceof Presenter || substr($destination, -1) === '!') {
$signal = rtrim($destination, '!');
$a = strrpos($signal, ':');
if ($a !== FALSE) {
$component = $component->getComponent(strtr(substr($signal, 0, $a), ':', '-'));
$signal = (string) substr($signal, $a + 1);
}
if ($signal == NULL) {
// intentionally ==
throw new InvalidLinkException("Signal must be non-empty string.");
}
$destination = 'this';
}
if ($destination == NULL) {
// intentionally ==
throw new InvalidLinkException("Destination must be non-empty string.");
}
// 5) presenter: action
$current = FALSE;
$a = strrpos($destination, ':');
if ($a === FALSE) {
$action = $destination === 'this' ? $this->action : $destination;
$presenter = $this->getName();
$presenterClass = get_class($this);
} else {
$action = (string) substr($destination, $a + 1);
if ($destination[0] === ':') {
// absolute
if ($a < 2) {
throw new InvalidLinkException("Missing presenter name in '{$destination}'.");
}
$presenter = substr($destination, 1, $a - 1);
} else {
// relative
$presenter = $this->getName();
$b = strrpos($presenter, ':');
if ($b === FALSE) {
// no module
$presenter = substr($destination, 0, $a);
} else {
// with module
$presenter = substr($presenter, 0, $b + 1) . substr($destination, 0, $a);
}
}
try {
$presenterClass = $presenterFactory->getPresenterClass($presenter);
} catch (Application\InvalidPresenterException $e) {
throw new InvalidLinkException($e->getMessage(), NULL, $e);
}
}
// PROCESS SIGNAL ARGUMENTS
if (isset($signal)) {
// $component must be IStatePersistent
//.........这里部分代码省略.........
示例4: link
/**
* @return string $url
*/
public function link($destination, $args = [])
{
static $presenterFactory = NULL, $router = NULL, $refUrl = NULL;
if ($presenterFactory === NULL) {
$presenterFactory = $this->presenterFactory;
$router = $this->router;
$refUrl = new Url($this->httpRequest->getUrl());
$refUrl->setPath($this->httpRequest->getUrl()->getScriptPath());
}
// PARSE DESTINATION
// 1) fragment
$a = strpos($destination, '#');
if ($a === FALSE) {
$fragment = '';
} else {
$fragment = substr($destination, $a);
$destination = substr($destination, 0, $a);
}
// 2) ?query syntax
$a = strpos($destination, '?');
if ($a !== FALSE) {
parse_str(substr($destination, $a + 1), $args);
// requires disabled magic quotes
$destination = substr($destination, 0, $a);
}
// 3) URL scheme
$a = strpos($destination, '//');
if ($a === FALSE) {
$scheme = FALSE;
} else {
$scheme = substr($destination, 0, $a);
$destination = substr($destination, $a + 2);
}
if ($destination == NULL) {
// intentionally ==
throw new InvalidLinkException("Destination must be non-empty string.");
}
// 5) presenter: action
$a = strrpos($destination, ':');
$action = (string) substr($destination, $a + 1);
if ($destination[0] === ':') {
// absolute
if ($a < 2) {
throw new InvalidLinkException("Missing presenter name in '{$destination}'.");
}
$presenter = substr($destination, 1, $a - 1);
} else {
// relative
throw new InvalidLinkException("Destination must be absolute.");
}
try {
$presenterFactory->getPresenterClass($presenter);
} catch (InvalidPresenterException $e) {
throw new InvalidLinkException($e->getMessage(), NULL, $e);
}
// ADD ACTION & SIGNAL & FLASH
$args[Presenter::ACTION_KEY] = $action;
$request = new Request($presenter, Request::FORWARD, $args, [], []);
$url = $router->constructUrl($request, $refUrl);
if ($url === NULL) {
unset($args[Presenter::ACTION_KEY]);
$params = urldecode(http_build_query($args, NULL, ', '));
throw new InvalidLinkException("No route for {$presenter}:{$action}({$params})");
}
return $url . $fragment;
}
示例5: send
/**
* Send request
*
* @param string|null $resource Optional resource
* @param string|null $action Optional action
* @param array|null $values Optional values
* @param string|null $method Optional method
*
* @return array
*/
public function send($resource = null, $action = null, $values = null, $method = null)
{
if ($resource) {
$this->setResource($resource);
}
if ($action) {
$this->setAction($action);
}
if ($method) {
$this->setMethod($method);
}
if ($values) {
$this->setValues($values);
}
if ($this->method === self::POST || $this->method === self::PUT) {
$content = $this->values;
$url = new Url();
$url->setPath($this->getResource());
$url->setQuery(['action' => $this->getAction()]);
} else {
$content = [];
$url = new Url();
$url->setPath($this->getResource());
$url->setQuery(array_merge(['action' => $this->getAction()], $this->getValues()));
}
$result = $this->adapter->query($url->getPath() . '?' . $url->getQuery(), $this->method, $content);
if ($result->success === false) {
throw new Exception\AdapterException(json_encode($result->messages), (string) $url);
}
if (!isset($result->body)) {
throw new Exception\AdapterException('Body not provided in response!', (string) $url);
}
return ArrayUtils::objectToArray($result->body);
}