0% menganggap dokumen ini bermanfaat (0 suara)
34 tayangan

4 Controller PHP MVC

Dokumen tersebut membahas tentang konsep MVC (Model View Controller) dalam PHP beserta penjelasan dan praktek implementasinya. Terdapat penjelasan tentang controller yang bertanggung jawab atas aliran eksekusi aplikasi dengan menyediakan data dari model ke view. Praktek membuat class App untuk memproses URL dan menjalankan controller, method, serta parameter sesuai URL. File controller Home dan About dibuat untuk diakses melalui URL.

Diunggah oleh

Zafirah Fatmadini
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
34 tayangan

4 Controller PHP MVC

Dokumen tersebut membahas tentang konsep MVC (Model View Controller) dalam PHP beserta penjelasan dan praktek implementasinya. Terdapat penjelasan tentang controller yang bertanggung jawab atas aliran eksekusi aplikasi dengan menyediakan data dari model ke view. Praktek membuat class App untuk memproses URL dan menjalankan controller, method, serta parameter sesuai URL. File controller Home dan About dibuat untuk diakses melalui URL.

Diunggah oleh

Zafirah Fatmadini
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 15

PHP MVC

Konsep pemrograman mvc


Pemrograman Web 2 – 4 SKS
Controller
Mvc
Controller
Penjelasan Controller…

 Controller bertanggung jawab atas aliran eksekusi


aplikasi. Bertugas untuk menyediakan data yang diambil
dari model untuk keperluan bagian view
Praktek
Controller
Praktek

 Menambah isi file App.php


 Membuat controller baru Home.php dan About.php

Praktek kali ini bertujuan untuk membuat kelas App dapat menyimpan
hasil parsing url berupa nama controller dan method kedalam variabel
Praktek <?php
class App {
protected $controller = 'Home';
protected $method = 'index';
protected $params = [];

 Isi file App public function __construct(){


ditambah //memeriksa controller yang ada di url
$url = $this->parseURL();
if (file_exists('../app/controllers/' . $url[0] . '.php')){
$this->controller = $url[0];
unset($url[0]);
}
require_once ('../app/controllers/' . $this->controller . '.php');
$this->controller = new $this->controller;

//memeriksa method yang ada di url


if ( isset($url[1]) ){
if ( method_exists($this->controller, $url[1]) ){
$this->method = $url[1];
unset($url[1]);
}
}
Praktek //memeriksa paramater yang ada di url
if ( !empty($url)){
$this->params = array_values($url);
}

 Isi file App //Jalankan controller, method, dan parameter jika ada
ditambah call_user_func_array([$this->controller,$this-
>method],$this->params);
}

/* Kelas untuk mengambil isi url yang dikirimkan lewat url */


public function parseURL(){
if ( isset ($_GET['url']) ){
$url = rtrim($_GET['url'], '/');
$url = filter_var($url, FILTER_SANITIZE_URL);
$url = explode('/', $url);
return $url;
}
}
}
?>
Praktek Penjelasan Kode…

 Dibuat 3 parameter $controller, $method, dan $params


 Kode dibawah akan memeriksa keberadaan file controller (missal Home.php)
di direktori controllers. Jika ada maka nama controller (missal Home) yang
berada di array $url[0] tersebut akan disimpan ke var $controller kemudian isi
$url[0] dihapus agar dapat digunakan menangkap nama controller lagi nanti.
 if (file_exists('../app/controllers/' . $url[0] . '.php')){
 $this->controller = $url[0];
 unset($url[0]);
 }
Praktek Penjelasan Kode…

require_once ('../app/controllers/' . $this->controller . '.php');


$this->controller = new $this->controller;

 Perintah diatas akan memanggil dan menjalankan file controller (misal


Home.php) lalu membuat obyek dari kelas Home (file Home.php nanti akan
berisi kode pembuatan kelas bernama Home)
Praktek Penjelasan Kode…
//memeriksa method yang ada di url
if ( isset($url[1]) ){
if ( method_exists($this->controller, $url[1]) ){
$this->method = $url[1];
unset($url[1]);
}
}

Kode diatas akan memeriksa nama method didalam controller (index


didalam Home) dengan fungsi method_exists. Jika ada maka nama
method akan disimpan kedalam var $method. Lalu isi var $url[1]
dihapus
Praktek Penjelasan Kode…
//memeriksa paramater yang ada di url
if ( !empty($url)){
$this->params = array_values($url);
}

//Jalankan controller, method, dan parameter jika ada


call_user_func_array([$this->controller,$this->method],$this->params);
}

Kode diatas akan memeriksa parameter di url dengan fungsi empty(). Jika ada maka
akan disimpan ke var $params dengan fungsi array_values().
Sesudah itu dengan fungsi call_user_func_array akan dijalankan controller,
method, dan parameter.
Praktek
 Setelah menambah kode dalam file App.php, selanjutnya membuat file
controller Home.php dan About.php

<?php
class Home {
public function index($nama='Lalang Erawan',$pekerjaan='Dosen')
{
echo "Selamat datang, saya adalah $nama, pekerjaan saya $pekerjaan";
}
}
?>

<?php
class About{
public function index(){
echo "About/page";
}
}
?>
Praktek
 Jalankan dengan url http://1912.168.10.253/~a22xxxxxxx/mvc/home
Praktek
 Jalankan dengan url http://1912.168.10.253/~a22xxxxxxx/mvc/about

Anda mungkin juga menyukai