Request & Response

LamdaPHP menyediakan kelas Request dan Response yang elegan di dalam namespace Lamda\Core\Http untuk mempermudah Anda berinteraksi dengan HTTP Request yang masuk dan mengembalikan Response ke browser.

1. Mengambil Input (Request)

Di dalam Controller, Anda dapat menggunakan objek Request untuk membaca parameter yang dikirim melalui method GET, POST, atau mengambil seluruh data yang diinputkan oleh pengguna.

app/Controllers/UserController.php
<?php

namespace App\Controllers;

use Lamda\Core\Http\Controller;
use Lamda\Core\Http\Request;

class UserController extends Controller
{
    public function store(Request $request)
    {
        // Mengambil spesifik input
        $nama = $request->input('nama');
        $email = $request->input('email');

        // Mengambil semua data input sebagai array
        $semuaData = $request->all();

        // Lakukan sesuatu dengan data (misal: simpan ke database)
    }
}

2. Menangani Upload File

Objek Request juga mempermudah Anda dalam menangani file yang diunggah melalui form (multipart/form-data).

public function uploadAvatar(Request $request)
{
    if ($request->hasFile('avatar')) {
        $file = $request->file('avatar');
        
        // Pindahkan file ke direktori storage/images
        $file->move('storage/images/', $file->getName());
        
        return "Upload berhasil!";
    }

    return "Tidak ada file yang diunggah.";
}

3. Mengembalikan JSON Response

Jika Anda menggunakan LamdaPHP untuk membuat REST API, Anda seringkali perlu mengembalikan data dalam format JSON. Anda bisa memanfaatkan kelas Response atau langsung menggunakan helper JSON.

public function getApiData()
{
    $data = [
        'status'  => 'success',
        'message' => 'Data berhasil diambil',
        'items'   => ['Apel', 'Jeruk', 'Mangga']
    ];

    // Secara otomatis akan menset header Content-Type: application/json
    return Response::json($data, 200);
}

4. Melakukan Redirect

Untuk mengalihkan (redirect) pengguna ke URL atau rute lain (misalnya setelah pengguna berhasil melakukan login), Anda dapat menggunakan metode redirect.

public function prosesLogin(Request $request)
{
    // ... logika validasi login ...

    // Redirect ke halaman dashboard jika sukses
    return Response::redirect('/dashboard');
}