继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Request.php-1

一只甜甜圈
关注TA
已关注
手记 248
粉丝 56
获赞 118

<?php

 

namespace Illuminate\Http;

 

use Closure;

use ArrayAccess;

use SplFileInfo;

use RuntimeException;

use Illuminate\Support\Arr;

use Illuminate\Support\Str;

use Illuminate\Support\Traits\Macroable;

use Illuminate\Contracts\Support\Arrayable;

use Symfony\Component\HttpFoundation\ParameterBag;

use Symfony\Component\HttpFoundation\Request as SymfonyRequest;

// long namespace

class Request extends SymfonyRequest implements Arrayable, ArrayAccess

{// Request

    use Macroable;// use trait

 

    /**

     * The decoded JSON content for the request.

     *

     * @var string

     */

    protected $json;// The decoded JSON content for the request.

 

    /**

     * All of the converted files for the request.

     *

     * @var array

     */

    protected $convertedFiles;//converted file

 

    /**

     * The user resolver callback.

     *

     * @var \Closure

     */

    protected $userResolver;//The user resolver callback.

 

    /**

     * The route resolver callback.

     *

     * @var \Closure

     */

    protected $routeResolver;// The route resolver callback.

 

    /**

     * Create a new Illuminate HTTP request from server variables.

     *

     * @return static

     */

    public static function capture()

    {

        static::enableHttpMethodParameterOverride();// static::

 

        return static::createFromBase(SymfonyRequest::createFromGlobals());

    }// Create a new Illuminate HTTP request from server variables.

 

    /**

     * Return the Request instance.

     *

     * @return $this

     */

    public function instance()

    {

        return $this;

    }//Return the Request instance

 

    /**

     * Get the request method.

     *

     * @return string

     */

    public function method()

    {

        return $this->getMethod();

    }// get the request method.

 

    /**

     * Get the root URL for the application.

     *

     * @return string

     */

    public function root()

    {

        return rtrim($this->getSchemeAndHttpHost().$this->getBaseUrl(), '/');

    }// Get the root URL for the application.

 

    /**

     * Get the URL (no query string) for the request.

     *

     * @return string

     */

    public function url()

    {

        return rtrim(preg_replace('/\?.*/', '', $this->getUri()), '/');

    }// Get the URL (no query string) for the request.

 

    /**

     * Get the full URL for the request.

     *

     * @return string

     */

    public function fullUrl()

    {

        $query = $this->getQueryString();// query ,get Query String

 

        $question = $this->getBaseUrl().$this->getPathInfo() == '/' ? '/?' : '?';// question

 

        return $query ? $this->url().$question.$query : $this->url();// query

    }// Get the full URL for the request.

 

    /**

     * Get the current path info for the request.

     *

     * @return string

     */

    public function path()

    {

        $pattern = trim($this->getPathInfo(), '/');

 

        return $pattern == '' ? '/' : $pattern;

    }//get Path

 

    /**

     * Get the current encoded path info for the request.

     *

     * @return string

     */

    public function decodedPath()

    {

        return rawurldecode($this->path());

    }//decode Path get the path

 

    /**

     * Get a segment from the URI (1 based index).

     *

     * @param  int  $index

     * @param  string|null  $default

     * @return string|null

     */

    public function segment($index, $default = null)

    {

        return Arr::get($this->segments(), $index - 1, $default);

    }//Get a segment from the URI (1 based index).

 

    /**

     * Get all of the segments for the request path.

     *

     * @return array

     */

    public function segments()

    {

        $segments = explode('/', $this->path());

 

        return array_values(array_filter($segments, function ($v) {

            return $v != '';

        }));// array_values.

    }// Get all of the segments for the request path

 

    /**

     * Determine if the current request URI matches a pattern.

     *

     * @param  mixed  string

     * @return bool

     */

    public function is()

    {

        foreach (func_get_args() as $pattern) {

            if (Str::is($pattern, urldecode($this->path()))) {

                return true;

            }

        }

 

        return false;

    }// check current request.


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP