Buatlah struktur folder seperti berikut pada directory root web kamu.
2.
Sedah tahu tujuan dari masing-masing folder. Kita bahas sekilas ya. untuk
folder controllers, models, views tujuanya sama seperti konsep mvc diatas. folder
config untuk menampung file configurasi yang nantinya bisa kita rubah untuk
penyesuaian, sedangkan core untuk menampung semua file dari init framework ini.
3.
Buat file index.php pada directory utama seperti gambar diatas dan isi script
berikut:
<?php
/*
* SCRIPT INI DITULIS OLEH IBNU IMAM.
* =====================================
* Email
: email@ibnuimam.com
* Blog
: http://blog.ibnuimam.com
* Company : http://midhighsolution.com
*/
error_reporting(E_ALL);
4.
Pada folder config buat dua file berikut:
config.php
database.php
=
=
=
=
"localhost";
"root";
"";
"dbname";
/* Akhir database.php */
/* Lokasi: ./database.php */
5.
Berikutnya pada folder core buat file berikut:
config.php
controller.php
: header("Refresh:0;url=".$uri);
: header("Location: ".$uri, TRUE, $http_response_code);
}
/* Akhir file controller.php */
/* Lokasi: ./controller.php */
database.php
/* Lokasi: ./database.php */
loader.php
model.php
{
$db;
$_result;
$_table;
return $this->query($query);
}
function select($id) {
$query = 'select * from `'.$this->_table.'` where
`id`=\''.mysql_real_escape_string($id).'\'';
return $this->query($query, TRUE);
}
/* Custom SQL Query */
function query($query, $singleResult = FALSE) {
$this->_result = mysql_query($query, $this->db);
if (preg_match("/select/i", $query)) {
$result = array();
$table = array();
$field = array();
$tempResults = array();
$numOfFields = mysql_num_fields($this->_result);
for ($i = 0; $i < $numOfFields; ++$i) {
array_push($table, mysql_field_table($this->_result, $i));
array_push($field, mysql_field_name($this->_result, $i));
}
while ($row = mysql_fetch_row($this->_result)) {
for ($i = 0; $i < $numOfFields; ++$i) {
$table[$i] = trim(ucfirst($table[$i]), "s");
$tempResults[$table[$i]][$field[$i]] = $row[$i];
}
if ($singleResult === TRUE) {
mysql_free_result($this->_result);
return $tempResults;
}
array_push($result, $tempResults);
}
mysql_free_result($this->_result);
return($result);
}
}
/** Get number of rows **/
function getNumRows() {
return mysql_num_rows($this->_result);
}
/** Free resources allocated by a query **/
function freeResult() {
mysql_free_result($this->_result);
}
}
/* Akhir file model.php */
/* Lokasi: ./model.php */
router.php
$_segment = array();
$_controller;
$_method;
$_var = array();
$controller_path = BASEPATH.'controllers/'.$this->_segment[0].'.php';
if(file_exists($controller_path)) {
require BASEPATH.'core/controller.php';
require $controller_path;
$class = ucfirst($this->_segment[0]).'Controller';
if(!class_exists($class)) {
show_error();
}
$this->_controller = new $class();
} else {
show_error();
}
}
/* Mencari class method */
private function _set_method() {
/* Jika tidak ada method yang dideklarasi, maka tetapkan ke index */
if(!isset ($this->_segment[1])) {
$this->_segment[1] = 'index';
}
/* Memeriksa apakah ada method */
if(method_exists($this->_controller, $this->_segment[1])) {
$this->_method = $this->_segment[1];
/* Jika private method, kirim ke 404 not found */
if(substr($this->_method, 0, 1) == '_') {
show_error();
}
} else {
show_error();
}
}
/* Tetapkan variabel dari uri segment */
private function _set_vars() {
if(isset ($this->_segment[2])) {
$this->_var = array_slice($this->_segment, 2);
}
}
public function do_request() {
call_user_func_array(array(&$this->_controller, $this->_method), $this->_var);
}
public function get_segment() {
return $this->_segment;
}
}
/* Akhir router.php */
/* Lokasi: ./router.php */
6.
Sekarang pondasi MVC sudah selesai. Mari kita coba untuk membuat Hello
World ya. Buka file config pada folder config dan isi base_url sesuai url yang kamu
pake. Contoh kita gunakan http://localhost/ms-mvc itu sesuai nama folder utama dari
framework ini kita buat. kemudian pada default_controller kita isi sesuai nama
controller pertama yang akan di load ketika web ini dibuka. contoh kita buat isi
dengan welcome.
7.
Buat file controller pada folder controllers dengan nama sesuai dari
default_controller yang kita isi sebelumnya. dalam contoh ini adalah welcome.php
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
8.
Kemudian kita buat tampilannya di folder view. dan pastikan nama file
viewnya sama dengan nama yang kita load di dalam controller. $this->load>view('welcome'); berdasarkan controller kita maka kita buat file welcome.php pada
folder view.
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #fff;
background-color: transparent;
border-bottom: 1px solid #fff;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #333;
border: 1px solid #fff;
color: #fff;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#body{
margin: 0 15px 0 15px;
}
p.footer{
text-align: right;
font-size: 11px;
border-top: 1px solid #D0D0D0;
line-height: 32px;
padding: 0 10px 0 10px;
margin: 20px 0 0 0;
}
#container{
margin: 10px;
border: 1px solid #fff;
}
</style>
</head>
<body>
<div id="container">
<h1>Welcome to MS-MVC</h1>
<div id="body">
<p>Halaman ini hanya contoh.</p>
<p>Jika kamu ingin mengedit halaman ini kamu dapat menemukannya di:</p>
<code>apps/views/welcome.php</code>
<p>Controller yang sesuai untuk halaman ini ditemukan di:</p>
<code>apps/controllers/welcome.php</code>
</div>
</div>
</body>
</html>
9.
Oke sekarang semuanya selesai. mari kita coba dengan membuka
dibrowser http://localhost/ms-mvc