当前位置: 首页>>代码示例>>PHP>>正文


PHP Request::getUri方法代码示例

本文整理汇总了PHP中Request::getUri方法的典型用法代码示例。如果您正苦于以下问题:PHP Request::getUri方法的具体用法?PHP Request::getUri怎么用?PHP Request::getUri使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Request的用法示例。


在下文中一共展示了Request::getUri方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: onRequest

 /**
  * Handles an incoming HTTP request and dispatches it to the appropriate action.
  *
  * @param  Request $request The HTTP request message.
  * @param  Socket  $socket  The client socket connection.
  *
  * @return \Generator
  *
  * @resolve \Icicle\Http\Message\Response The appropriate HTTP response.
  */
 public function onRequest(Request $request, Socket $socket) : \Generator
 {
     $dispatched = $this->app->getDispatcher()->dispatch($request->getMethod(), $request->getUri()->getPath());
     switch ($dispatched[0]) {
         case FastRoute\Dispatcher::NOT_FOUND:
             // no route found
             $randomStr = '';
             for ($i = 0; $i < 1000; ++$i) {
                 $char = chr(mt_rand(32, 126));
                 if ($char !== '<') {
                     $randomStr .= $char;
                 }
             }
             $html = $this->app->getRenderer()->render('404', ['randomStr' => $randomStr]);
             $sink = new MemorySink();
             yield from $sink->end($html);
             return new BasicResponse(404, ['Content-Type' => 'text/html', 'Content-Length' => $sink->getLength()], $sink);
         case FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
             // HTTP request method not allowed
             $sink = new MemorySink();
             yield from $sink->end('405 Method Not Allowed');
             return new BasicResponse(405, ['Content-Type' => 'text/plain', 'Content-Length' => $sink->getLength()], $sink);
         case FastRoute\Dispatcher::FOUND:
             // route was found
             $action = new $dispatched[1]($this->app);
             $response = (yield from $action->handle($request, $dispatched[2]));
             return $response;
         default:
             throw new \RuntimeException('Invalid router state');
     }
 }
开发者ID:coderstephen,项目名称:blog,代码行数:41,代码来源:RequestHandler.php

示例2: _default

 protected function _default(Request $request)
 {
     $route = new Route();
     $uri = $request->getUri();
     $uri = strpos($uri, "?") !== false ? substr($uri, 0, strpos($uri, "?")) : $uri;
     $parts = explode("/", $uri);
     $parts = $this->_filter($parts);
     switch (count($parts)) {
         case 0:
             $route->setControllerName("index");
             $route->setActionName("index");
             break;
         case 1:
             $route->setControllerName($parts[0]);
             $route->setActionName("index");
             array_shift($parts);
             break;
         default:
             $route->setControllerName($parts[0]);
             $route->setActionName($parts[1]);
             array_shift($parts);
             array_shift($parts);
             break;
     }
     count($parts) % 2 !== 0 ? array_pop($parts) : false;
     if (count($parts)) {
         for ($i = 0; $i < count($parts); $i = $i + 2) {
             $request->addParam($parts[$i], $parts[$i + 1]);
         }
     }
     return $route;
 }
开发者ID:elvis2,项目名称:simple-mvc,代码行数:32,代码来源:Router.php

示例3: feed

 public function feed($data)
 {
     $this->buffer .= $data;
     if (!$this->request && false !== strpos($this->buffer, "\r\n\r\n")) {
         // Extract the header from the buffer
         // in case the content isn't complete
         list($headers, $this->buffer) = explode("\r\n\r\n", $this->buffer, 2);
         // Fail before parsing if the
         if (strlen($headers) > $this->maxSize) {
             $this->headerSizeExceeded();
             return;
         }
         $this->request = gPsr\parse_request($headers . "\r\n\r\n");
     }
     // if there is a request (meaning the headers are parsed) and
     // we have the right content size, we can finish the parsing
     if ($this->request && $this->isRequestComplete()) {
         $body = substr($this->buffer, 0, $this->length);
         // create a stream for the body.
         $stream = new BufferedStream();
         $stream->write($body);
         // add stream to the request.
         $this->request = $this->request->withBody($stream);
         // create server request object
         $this->request = new ServerRequest($this->request);
         // todo this should really belong in the header parsing.  clean this up.
         $parsedQuery = [];
         $queryString = $this->request->getUri()->getQuery();
         if ($queryString) {
             parse_str($queryString, $parsedQuery);
             if (!empty($parsedQuery)) {
                 $this->request = $this->request->withQueryParams($parsedQuery);
             }
         }
         // add server request information to the request object.
         $this->request = $this->parseBody($body, $this->request);
         $this->emit('headers', array($this->request));
         $this->removeAllListeners();
         $this->request = null;
         return;
     }
     // fail if the header hasn't finished but it is already too large
     if (!$this->request && strlen($this->buffer) > $this->maxSize) {
         $this->headerSizeExceeded();
         return;
     }
 }
开发者ID:bweston92,项目名称:expressive-async,代码行数:47,代码来源:RequestParser.php

示例4: match

 /**
  * Thank's Symfony :)
  */
 public function match(Request $request_)
 {
     $matches = $variables = $tokens = array();
     $defaultSeparator = '/';
     $uri = $request_->getUri();
     preg_match_all('#\\{\\w+\\}#', $this->path, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
     if (!empty($matches)) {
         // Use of {} variables
         $pos = 0;
         foreach ($matches as $match) {
             $varName = substr($match[0][0], 1, -1);
             $precedingText = substr($this->path, $pos, $match[0][1] - $pos);
             $pos = $match[0][1] + strlen($match[0][0]);
             $precedingChar = strlen($precedingText) > 0 ? substr($precedingText, -1) : '';
             $isSeparator = $precedingChar !== '' && strpos(static::SEPARATORS, $precedingChar) !== false;
             if (is_numeric($varName)) {
                 throw new \Exception(sprintf('Variable name "%s" cannot be numeric in route pattern "%s". Please use a different name.', $varName, $this->path));
             }
             if (in_array($varName, $variables)) {
                 throw new \Exception(sprintf('Route pattern "%s" cannot reference variable name "%s" more than once.', $this->path, $varName));
             }
             if ($isSeparator && strlen($precedingText) > 1) {
                 $tokens[] = array('text', substr($precedingText, 0, -1));
             } else {
                 if (!$isSeparator && strlen($precedingText) > 0) {
                     $tokens[] = array('text', $precedingText);
                 }
             }
             $followingPattern = (string) substr($this->path, $pos);
             $nextSeparator = self::findNextSeparator($followingPattern);
             $regexp = sprintf('[^%s%s]+', preg_quote($defaultSeparator, self::REGEX_DELIMITER), $defaultSeparator !== $nextSeparator && '' !== $nextSeparator ? preg_quote($nextSeparator, self::REGEX_DELIMITER) : '');
             if ($nextSeparator !== '' && !preg_match('#^\\{\\w+\\}#', $followingPattern) || $followingPattern === '') {
                 $regexp .= '+';
             }
             $variables[] = $varName;
             $tokens[] = array('variable', $isSeparator ? $precedingChar : '', $regexp, $varName);
         }
         if ($pos < strlen($this->path)) {
             $tokens[] = array('text', substr($this->path, $pos));
         }
         // compute the matching regexp
         $regexp = '';
         for ($i = 0, $nbToken = count($tokens); $i < $nbToken; ++$i) {
             $regexp .= self::computeRegexp($tokens, $i, PHP_INT_MAX);
         }
         $regex = self::REGEX_DELIMITER . '^' . $regexp . '$' . self::REGEX_DELIMITER . 's';
         $matchingValues = array();
         $res = preg_match($regex, $uri, $matchingValues);
         if ($res) {
             foreach ($variables as $k => $v) {
                 $request_->setParam($v, $matchingValues[$v]);
             }
             return true;
         }
         return false;
     }
     return $this->path === $request_->getUri();
 }
开发者ID:jejem,项目名称:starter-kit,代码行数:61,代码来源:Route.php

示例5: match

 public function match(Request $request, $route = false)
 {
     if ($request->getUri() == $this->_path) {
         $static = new Route();
         $static->setControllerName($this->_controller);
         $static->setActionName($this->_action);
         $static->merge($route);
         return parent::match($request, $static);
     }
 }
开发者ID:elvis2,项目名称:simple-mvc,代码行数:10,代码来源:StaticRouter.php

示例6: doRequest

 /**
  * Makes a request.
  *
  * @param Request $request A Request instance
  *
  * @return Response A Response instance
  */
 protected function doRequest($request)
 {
     curl_setopt($this->curl, CURLOPT_URL, $request->getUri());
     curl_setopt($this->curl, CURLOPT_POSTFIELDS, $request->getParameters());
     curl_setopt($this->curl, CURLOPT_CUSTOMREQUEST, $request->getMethod());
     curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
     $content = curl_exec($this->curl);
     $this->assertCurlError();
     $requestInfo = curl_getinfo($this->curl);
     return new Response($content, $requestInfo['http_code']);
 }
开发者ID:rosstuck,项目名称:Pok,代码行数:18,代码来源:CurlClient.php

示例7: __invoke

 public function __invoke(array $record)
 {
     $record['context']['app'] = $this->appName;
     $record['context']['environement'] = $this->environment;
     $record['context']['Hostname'] = gethostname();
     try {
         if (null === $this->request) {
             $this->request = $this->container->get('request');
         }
         $record['request']['base_url'] = $this->request->getBaseUrl();
         $record['request']['scheme'] = $this->request->getScheme();
         $record['request']['port'] = $this->request->getPort();
         $record['request']['request_uri'] = $this->request->getRequestUri();
         $record['request']['uri'] = $this->request->getUri();
         $record['request']['query_string'] = $this->request->getQueryString();
         $record['request']['_route'] = $this->request->get('_route');
     } catch (\Exception $e) {
         // This stops errors occuring in the CLI
     }
     return $record;
 }
开发者ID:easylo,项目名称:monolog-heka-bundle,代码行数:21,代码来源:EasyloMonologHekaProcessor.php

示例8: Delete

 public function Delete(Request $request)
 {
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $request->getUri());
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_HEADER, 1);
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
     curl_setopt($ch, CURLOPT_TIMEOUT, 20);
     $response = curl_exec($ch);
     $r = $this->ConvertCurlResponse($response, $ch);
     curl_close($ch);
     return $r;
 }
开发者ID:sstretten,项目名称:phpcurl,代码行数:14,代码来源:Worker.php

示例9: handle

 /**
  * Handle the incoming HTTP request and return a
  * Response object.
  *
  * @param  Request  $request
  * @throws InvalidHttpResponseException
  * @return Response
  */
 public function handle(Request $request)
 {
     $route_params = $this->_router->match($request->getUri());
     $route = $route_params['route'];
     $params = $route_params['params'];
     $func = reset($route) . self::CONTROLLER_METHOD_SUFIX;
     $class_name = key($route);
     $controller = new $class_name($request);
     $response = call_user_func_array([$controller, $func], [$params]);
     if ($response instanceof Response) {
         return $response;
     } else {
         throw new InvalidHttpResponseException();
     }
 }
开发者ID:purinda,项目名称:flickrtst,代码行数:23,代码来源:Resolver.php

示例10: __construct

 public function __construct($owner, &$item, $user = null, $parent = null, $depth = 0)
 {
     $this->item = $item;
     $this->user = $user;
     $this->parent = $parent;
     $this->owner = $owner;
     $uri_to_match = Request::getUri();
     if ($this->owner->ignorePrefix()) {
         $uri_to_match = @preg_replace('#^' . $owner->ignorePrefix() . '#', '', $uri_to_match);
         if ($uri_to_match === null) {
             throw new BakedCarrotException('Invalid parameter: "ignore_prefix"');
         }
     }
     if ($uri_to_match == '/') {
         $this->item['active'] = isset($this->item['uri']) && $this->item['uri'] == $uri_to_match;
         $this->item['selected'] = $this->item['active'];
     } else {
         $request_uri_parts = $this->splitUri($uri_to_match);
         $uri_parts = array();
         if (isset($this->item['uri']) && strlen($this->item['uri']) > 0) {
             $uri_parts = $this->splitUri($this->item['uri']);
         }
         $matched = false;
         foreach ($uri_parts as $num => $uri_part) {
             $matched = isset($request_uri_parts[$num]) && $request_uri_parts[$num] == $uri_part;
             if (!$matched) {
                 break;
             }
         }
         $this->item['active'] = $matched;
         $this->item['selected'] = $matched && count($uri_parts) == count($request_uri_parts);
     }
     $this->item['depth'] = $depth;
     $this->item['access'] = true;
     if (is_object($this->user) && isset($this->item['uri'])) {
         if (!method_exists($this->user, 'hasRole')) {
             throw new BakedCarrotException(get_class($this->user) . '::hasRole() is not defined');
         }
         if (($menu_item_route = Router::getRouteByUri($this->item['uri'])) && $menu_item_route->acl) {
             $this->item['access'] = $this->user->hasRole($menu_item_route->acl);
         }
     }
     $this->getChildren();
 }
开发者ID:nicksp,项目名称:BakedCarrot,代码行数:44,代码来源:MenuItem.php

示例11: send

 /**
  * (non-PHPdoc)
  * @see HttpClient::send()
  */
 public function send(Request $request)
 {
     $ch = $this->curlAdapter->init($request->getUri());
     $this->curlAdapter->setOption($ch, $this->curlAdapter->getOptConstant('CUSTOMREQUEST'), $request->getMethod());
     $headers = array();
     foreach ($request->getHeader() as $name => $value) {
         $headers[] = $request->getHeader()->joinField($name, $value);
     }
     $this->curlAdapter->setOption($ch, $this->curlAdapter->getOptConstant('HTTPHEADER'), $headers);
     $this->curlAdapter->setOption($ch, $this->curlAdapter->getOptConstant('POSTFIELDS'), $request->getPayload());
     $this->curlAdapter->setOption($ch, $this->curlAdapter->getOptConstant('RETURNTRANSFER'), 1);
     $this->curlAdapter->setOption($ch, $this->curlAdapter->getOptConstant('HEADERFUNCTION'), array($this, 'headerCallback'));
     $this->response->flush();
     $content = $this->curlAdapter->exec($ch);
     if (false === $content) {
         throw new \RuntimeException($this->curlAdapter->getError($ch), $this->curlAdapter->getErrno($ch));
     }
     $this->response->setContent($content);
     $this->response->setStatusCode($this->curlAdapter->getInfo($ch, $this->curlAdapter->getInfoConstant('HTTP_CODE')));
     $this->curlAdapter->close($ch);
     return clone $this->response;
 }
开发者ID:next-sentence,项目名称:oauth2-php-sdk,代码行数:26,代码来源:CurlClient.php

示例12: route

 /**
  * Given the request data and the loaded resource metadata, pick the best matching
  * resource to handle the request based on URI and priority.
  *
  * @param  Request $request
  * @return ResourceMetadata
  */
 public function route($request = NULL)
 {
     $matchedResource = NULL;
     if (!$request) {
         $request = new Request();
     }
     foreach ($this->resources as $className => $resourceMetadata) {
         foreach ($resourceMetadata->getUri() as $index => $uri) {
             $uriRegex = '|^' . $uri . '$|';
             if (($matchedResource == NULL || $matchedResource[0]->getPriority() < $resourceMetadata->getPriority()) && preg_match($uriRegex, $request->getUri(), $params)) {
                 array_shift($params);
                 $uriParams = $resourceMetadata->getUriParams($index);
                 if ($uriParams) {
                     // has params within URI
                     foreach ($uriParams as $key => $name) {
                         $params[$name] = $params[$key];
                     }
                 }
                 $matchedResource = array($resourceMetadata, $params);
             }
         }
     }
     if ($matchedResource) {
         $request->setParams($matchedResource[1]);
         return $matchedResource[0];
     } else {
         throw new NotFoundException(sprintf('Resource matching URI "%s" not found', $request->uri));
     }
 }
开发者ID:LucasFrecia,项目名称:tonic,代码行数:36,代码来源:Application.php

示例13: onAfterDispatch

 /**
  * This method adds alternate meta tags for associated menu items
  *
  * @return	nothing
  * @since	1.7
  */
 public function onAfterDispatch()
 {
     if (App::isSite() && $this->params->get('alternate_meta') && Document::getType() == 'html') {
         // Get active menu item
         $active = App::get('menu')->getActive();
         if (!$active) {
             return;
         }
         // Get menu item link
         if (Config::get('sef')) {
             $active_link = Route::url('index.php?Itemid=' . $active->id, false);
         } else {
             $active_link = Route::url($active->link . '&Itemid=' . $active->id, false);
         }
         if ($active_link == JUri::base(true) . '/') {
             $active_link .= 'index.php';
         }
         // Get current link
         $current_link = Request::getUri();
         if ($current_link == Request::base(true) . '/') {
             $current_link .= 'index.php';
         }
         // Check the exact menu item's URL
         if ($active_link == $current_link) {
             // Get menu item associations
             JLoader::register('MenusHelper', PATH_CORE . '/components/com_menus/admin/helpers/menus.php');
             $associations = MenusHelper::getAssociations($active->id);
             // Remove current menu item
             unset($associations[$active->language]);
             // Associated menu items in other languages
             if ($associations && $this->params->get('menu_associations')) {
                 $menu = App::get('menu');
                 $server = JURI::getInstance()->toString(array('scheme', 'host', 'port'));
                 foreach (JLanguageHelper::getLanguages() as $language) {
                     if (isset($associations[$language->lang_code])) {
                         $item = $menu->getItem($associations[$language->lang_code]);
                         if ($item && Lang::exists($language->lang_code)) {
                             if (Config::get('sef')) {
                                 $link = Route::url('index.php?Itemid=' . $associations[$language->lang_code] . '&lang=' . $language->sef);
                             } else {
                                 $link = Route::url($item->link . '&Itemid=' . $associations[$language->lang_code] . '&lang=' . $language->sef);
                             }
                             // Check if language is the default site language and remove url language code is on
                             if ($language->sef == self::$default_sef && $this->params->get('remove_default_prefix') == '1') {
                                 $relLink = preg_replace('|/' . $language->sef . '/|', '/', $link, 1);
                                 Document::addHeadLink($server . $relLink, 'alternate', 'rel', array('hreflang' => $language->lang_code));
                             } else {
                                 Document::addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code));
                             }
                         }
                     }
                 }
             } elseif ($active->home) {
                 $menu = App::get('menu');
                 $server = JURI::getInstance()->toString(array('scheme', 'host', 'port'));
                 foreach (JLanguageHelper::getLanguages() as $language) {
                     $item = $menu->getDefault($language->lang_code);
                     if ($item && $item->language != $active->language && $item->language != '*' && JLanguage::exists($language->lang_code)) {
                         if (Config::get('sef')) {
                             $link = Route::url('index.php?Itemid=' . $item->id . '&lang=' . $language->sef);
                         } else {
                             $link = Route::url($item->link . '&Itemid=' . $item->id . '&lang=' . $language->sef);
                         }
                         // Check if language is the default site language and remove url language code is on
                         if ($language->sef == self::$default_sef && $this->params->get('remove_default_prefix') == '1') {
                             $relLink = preg_replace('|/' . $language->sef . '/|', '/', $link, 1);
                             Document::addHeadLink($server . $relLink, 'alternate', 'rel', array('hreflang' => $language->lang_code));
                         } else {
                             Document::addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code));
                         }
                     }
                 }
             }
         }
     }
 }
开发者ID:mined-gatech,项目名称:hubzero-cms,代码行数:82,代码来源:languagefilter.php

示例14: full

 /**
  * Get the full URI including the query string.
  *
  * @return string
  */
 public static function full()
 {
     return Request::getUri();
 }
开发者ID:schpill,项目名称:thin,代码行数:9,代码来源:Uri.php

示例15: setReadyAction

 public function setReadyAction()
 {
     $response['error'] = 0;
     $response['target_h']['#battle'] = '';
     $response['blocked'] = false;
     if (Request::getUri()[0]) {
         $mid = Request::getUri()[0];
         $assets = getSession('myAssets' . $mid, false);
         if ($assets) {
             $assets = json_decode($assets);
             if ($assets && is_object($assets) && count($assets) > 0) {
                 $model = new ProfileModel();
                 $myAssets = $model->getMatchAssets(Request::getParam('user')->id, $mid);
                 if ($myAssets && count($myAssets) > 0) {
                     foreach ($myAssets as $asset) {
                         if (!$asset->oldAssetId) {
                             $response['error'] = Lang::translate("MATCH_ONE_EMPTY");
                             break;
                         }
                     }
                     if (!$response['error']) {
                         $match = $model->getMatchByID($mid);
                         if ($match && !$match->blocked) {
                             if (Request::getParam('user')->id == $match->uid) {
                                 if ($match->uready == '0') {
                                     $data['uready'] = '1';
                                     $status = Lang::translate("MATCH_READY");
                                 } else {
                                     $data['uready'] = '0';
                                     $status = Lang::translate("MATCH_NOT_READY");
                                 }
                             } else {
                                 if ($match->pready == '0') {
                                     $data['pready'] = '1';
                                     $status = Lang::translate("MATCH_READY");
                                 } else {
                                     $data['pready'] = '0';
                                     $status = Lang::translate("MATCH_NOT_READY");
                                 }
                             }
                             if ($model->setMatchReady($mid, $data)) {
                                 $response['target_h']['#readyBtn'] = $status;
                                 $match = $model->getMatchByID($mid);
                                 if ($match->uready && $match->pready) {
                                     if ($model->setMatchBlocked($match->id)) {
                                         $response['target_h']['#battle'] = Lang::translate("MATCH_BLOCKED_WAIT_FOR_REQUEST") . " 0%";
                                         $response['blocked'] = true;
                                     } else {
                                         $response['tradeOffer'] = Lang::translate("MATCH_DB_ERROR");
                                     }
                                 }
                             } else {
                                 $response['error'] = Lang::translate("MATCH_DB_ERROR");
                             }
                         } else {
                             $response['blocked'] = true;
                             $response['error'] = Lang::translate("MATCH_WRONG_OR_BLOCKED");
                         }
                     }
                 } else {
                     $response['error'] = Lang::translate("MATCH_EMPTY_MY_ASSETS");
                 }
             } else {
                 $response['error'] = Lang::translate("MATCH_WRONG_ASSETS");
             }
         } else {
             $response['error'] = Lang::translate("MATCH_EMPTY_ASSETS");
         }
     }
     echo json_encode($response);
     exit;
 }
开发者ID:Snake4life,项目名称:csgobattlecom,代码行数:72,代码来源:Controller.php


注:本文中的Request::getUri方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。