Lumen HTTP Response

Basic Response

Selain melakukan mapping terhadap Controller route juga bisa mengembalikan response secara langsung seperti berikut :

String Response

$router->get('/response',function (){
    return "This is my response";
});

jika aplikasi kita jalankan maka route yang telah kita buat akan mampilkan text atau string seperti berikut :

Object Response

Selain string kita bisa mengembalikan response berupa JOSN :

$router->get('/response',function (){
    return (new Response(['name'=>'alfazalea'], 200))
        ->header('Content-Type', 'application/json');
});

JSON Response

jika mengunakan response json maka secara default type header menjadi application/json, serta mengkonversi array yang diberikan menjadi JSON menggunakan fungsi PHP json_encode :

$router->get('/user',function (){
    return response()->json(
        [
            'id'=>1,
            'name' => 'alfazalea',
            'age' => '20'
        ]
    );
});

File Download

Ketika kita ingin mengembalikan response berupa file / download file maka kita bisa mengunakan function response->donwload seperti berikut :

$router->get('/download',function (){
    return response()->download($pathToFile);
});

Redirect Response

Untuk melakukan response redirect ke halaman/page lain kita bisa menggunakan redirect seperti berikut :

$router->get('/redirect',function (){
return redirect('home/dashboard');
});

Redirect to Name Routes

$router->get('/login',function (){
    return redirect()->route('login');
});

Redirect with paramaters

//parsing array
$router->get('/home',function (){
    return redirect()->route('profile',['id'=>1]);
});

//parsing object/model

$router->get('/home',function (){
    return redirect()->route('profile',[$user]);
});

 

 

 

 

References :

  1. https://lumen.laravel.com/

hyvercode

Lumen HTTP Controllers

Introduction

Controller pada lumen adalah sebuah class yang berfungsi sebagai behavior atau logic yang menghandle setiap request dari routes/web.php yang telah dibuat. Semua class controllers pada framework lumen terletak di directory app/Http/Controllers.

Basic Controllers

Semuah class controllers pada framework lumen adalah extends dari class Controller. Berikut contoh sederhana bagaimana mebuat sebuah class controllers buat sebuah class ExampleController pada directory project app/Http/Controllers. cara install atau menbuat project awal lumen bisa mengikuti tutorial lumen sebelumnya

Lumen Introduction

<?php

namespace App\Http\Controllers;

class ExampleController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    public function index(){
        return "Hello World";
    }
}

Setelah kita membuat class controller maka selanjutnya agar controller yang telah kita buat, tambahkan atau buat route controller pada file app/routes/web.php

$router->get('/example', 'ExampleController@index');

Pada script di atas kita mebuat sebuah route dengan nama /example dan methode GET yang melakukan callback pada class ExampleController dengan nama function index. Setelah itu jalankan aplikasi dan kemudian akses service yang kita buat dengan cara jalankan apliaksi lumen dengan mengetik perintah berikut :

php -S localhost:8000 -t public

 

 

Dependency Injection (DI) & Controllers

Constructor injection

Dependency Injection pada Controller yaitu melakukan injection sebuah Class pada Constructor, sehingga Class atau dependency yang kita inject secara otomatis akan dibuatkan instance ketika Class controller dieksekusi, berikut contoh Dependency Injection pada Controller :

<?php

namespace App\Http\Controllers;

use App\Services\UserService;

class UserController
{

    protected $userService;

    public function __construct(UserService $userService)
    {
        $this->userService = $userService;
    }

    /**
     * @param $name
     * @return mixed
     */
    public function getMyName($name){
        return $this->userService->getName($name);
    }
}

Pada contoh script di atas kita melakukan injection pada contructor yaitu dengan memasukan class UserService dan memanggil method getName pada body function/method yang kita buat.

 

Method Injection

Selain pada construstor kita juga bisa membuat Dependency Injection pada sebuah method, contoh seperti berikut :

<?php

namespace App\Services;

use http\Client\Request;

class UserService
{

    /**
     * @param $name
     * @return mixed
     */
    public function getName(Request $request){
        return 'My Name is :' .$request->name;
    }
}

Pada contoh script di atas kita melakukan injection pada function/method getName yaitu dengan memasukan class Request dan mengambil nilai $request->name pada body function/method yang kita buat.

 

Source code tutorial lumen bisa di download di github alfazalea/lumen-tutorial

 

References :

  1. https://lumen.laravel.com/

hyvercode

PHP Booleans

Boolean atau bool adalah type data yang hanya memiliki inlay true atau false, inlay boolean bersifat case-sensitive contoh syntax pengunaan tipe data boolean seperti berikut :

<?php
 $foo = true //assign the value TRUE to $foo
?>
<?php

 $foo = true;

 if($foo){
     echo 'TRUE';
 }else{
     echo 'FALSE';
 }

?>
TRUE

Source code project ini dapat di download di Github php-tutorial

hyvercode

PHP GET & POST Methods

Pada PHP ada dua methods yang digunakan browser untuk mengirim informasi ke webserver (PHP) yaitu :

Methode GET

Methode get adalah meminta representasi/informasi kepada server dengan cara url encode yaitu semua paramater yang dikirim ke server terdapat pada url contoh sebagai berikut

(more…)

hyvercode