Request

Introduction

CHTTP::request() akan mengembalikan object CHTTP_Request dengan request sekarang dilakukan. dari object ini anda dapat melakukan retrieve input, cookies, dan files yang disubmit oleh HTTP request.

Accessing The Request

untuk mendapat current HTTP request, anda dapat memanggil CHTTP::request():

<?php


class Controller_User extends CController {
   /**
     * Store a new user.
     *
     * @return CHTTP_Response
     */
    public function store(){
        $request = CHTTP::request();
        $name = $request->input('name');

        //
    }
}

Request Path & Method

CHTTP_Request adalah turunan dari Symfony\Component\HttpFoundation\Request class. Kita akan membahas beberapa fungsi yang cukup penting pada class ini:

Retrieving The Request Path

fungsi path akan mengembalikan nilai request path. Jika incoming request berasal dari http://example.com/foo/bar, fungsi path akan mendapatkan nilai foo/bar:

$uri = $request->path();
Inspecting The Request Path / Route

fungsi is dapat memungkinkan kita untuk mengecheck apakah incoming request path cocok dengan suatu pattern. Kita dapat menggunakan karakter * sebagai wildcard saat menggunkan fungsi ini:

if ($request->is('admin/*')) {
    //
}
Retrieving The Request URL

Untuk mendapatkan full URL dari incoming request, kita dapat menggunakan fungsi url atau fullUrl. fungsi url akan mengembalikan url tanpa query string, sedangkan fungsi fullUrl akan menyertakan query string:

$url = $request->url();

$urlWithQueryString = $request->fullUrl();

Jika kita ingin menambahkan query string data pada current URL, kita dapat melakukan pemanggilan fungsi fullUrlWithQuery.fungsi ini akan menggabungkan array yang diberikan dengan query string yang ada pada request:

$request->fullUrlWithQuery(['type' => 'phone']);
Retrieving The Request Method

fungsi method akan mengembalikan nilai HTTP verb pada request. Kita dapat menggunakan fungsi isMethod untuk mengecheck jika HTTP verb cocok dengan suatu string:

$method = $request->method();

if ($request->isMethod('post')) {
    //
}