Postingan lainnya
Cara membuat class Requests mirip laravel di php native
hallo gan, saya udah mempelajari video tutorial di sekolah koding tentang mini-framework dan sedikit sedikit mau dikembangin buat keperluan saya. jadi saya mau ada class Request untuk ngambil data dari post. itu logikanya gimana ya ? biar bisa jadi parameter method dan di gunakan mirip laravel. kalau pertanyaan saya kurang berkenan mohon maaf saya pemula :D
6 Jawaban:
Hallo, apa ada yang bisa kasih pencerahan ?
kalau ada yang tau tolong kasih pencerahan ya... :D
bisa ambil data dari global variabel `$_SERVER`. Pada veriabel tsb terdapat banyak data yang dapat untuk membuat class request.
contoh di laravel ada
$method = $request->method();
if ($request->isMethod('post')) {
//
}
maka
Class Request{
private $server = [];
function __construct(){
$this->server = $_SERVER; // bisa juga pake dependency injection
}
//...
function method(){
return strtoupper($this->server['REQUEST_METHOD']);
}
function isMethod($method){
return $this->method() === strtoupper($method);
}
//...
}
Kalo ambil value dari input text nya gimana ya ? Kan kalo di laravel simple tinggal $request->name
public function __construct()
{
$this->server = $_SERVER;
if ($this->method() === 'POST') {
$input = $_POST;
} else {
$input = $_GET;
}
foreach ($input as $key => $value) {
$this->$key = $value;
}
}
kalau bingung dengan maksud $this->$key, bisa baca ini http://php.net/manual/en/language.variables.variable.php. $this->$key akan membuat property pada object, sesuai dengan input-name yang di input oleh user.
kalo inisialisasinya yang ini bukan gan ?
$method = $request->method();
if ($request->isMethod('post')) {
//
}
jadi kaya gini
public function store()
{
$method = $request->method();
if ($request->isMethod('post')) {
//
}
}
itu mungkin requestnya di taro di controller utama, soalnya kalo di parameter store nanti jadi nyari get kaya di video mini framework. apa bner atau bisa di ubah lagi gan ?