HTTP Requests

7/13/2021

# Description:

  • Get giá trị của HTTP Requests (input, file, cookie, headers)

  • Registering DI container tại RequestServiceProvider.

  • Các method:

    interface RequestContract
    {
        public function post(): InputBag;
    
        public function query(): InputBag;
    
        public function cookie(): InputBag;
    
        public function files(): FileBag;
    
        public function server(): ServerBag;
    
        public function headers(): HeaderBag;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

# Usage:

# Resolved dependency:

RequestContract đã được binding vào DI Container nên có thể sử dụng request bằng các resolved từ Container.

class FooController {
        protected RequestContract $request;
    
	public function __construct(RequestContract $request) 
	{
		$this->request = $request;
	}
    
        public function indexAction()
        {
            vd($this->request->query()->get('key'));
        }
}

// url:            /foo?foo=bar
// output:     "bar"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Hoặc type-hinting trong controller method tương tự như Laravel:

class FooController {
    
        public function indexAction(RequestContract $request)
        {
            vd($request->query()->get('key'));
        }
}
1
2
3
4
5
6
7

# Facade:

use Nin\Libs\Facades\Request;

class FooController {
    
        public function indexAction()
        {
            vd(Request::query()->get('key'));
        }
}
1
2
3
4
5
6
7
8
9

Packagist: https://packagist.org/packages/nin/nin (opens new window)