Kali ini saya akan membagikan sebuah framework ala yudi purwanto yang saya berinama Ultra Framework Versi ORM. Dari yang sebelumnya belum mendukung ORM.
Aplikasi yang dibuat sangat sederhana namun memungkinkan kita untuk memahami cara kerjanya.
Object Relaional Mapping(ORM) : Salah satu teknik memetakkan basisdata relational ke model object. : Salah satu teknik memetakkan basisdata relational ke model object.
MVC pada awalnya banyak digunakan dalam aplikasi GUI dekstop, tetapi saat ini dengan perkembangan dan kematangan bahasa pemrograman web, bermunculanlah beberapa framework yang menggunakan arsitektur ini.
MVC, singkatnya adalah cara yang efisien, bersih dan cepat untuk memisahkan kode program dari kode HTML, atau antar muka lain yang kita pilih.
MVC berarti, Model – View – Controller.
Model: bertanggungjawab terhadap pengelolaan data seperti SQL databases dan operasi SELECT, UPDATE, DELETE,dsb, dst, dll
View: menampilkan antarmuka (UI), html, css, javascript dan sebagainya
Controller: Jantung dan otak dari arsitektur MVC, tempat semua request masuk, controller adalah yang menjembatani antara view dan model.
Ultra Framework versi ORM ini menggunakan Default Driver Mysql tetapi tidak menutup kemungkinan tidak bisa menggunakan Sqlite dan Postgres, Itu jelas salah tentu saja bisa.
Disini akan saya berikan Dokumentasi dan cara penggunaan Framework Versi ini.
Langkah pertama download file yang ada di github.
Langkah kedua konfigurasi di Config.php yang ada dalam root dir/base/Config.php
Setting nama semua yang ada di Config.php sesuaikan kebutuhan.
Seperti Host, Database, User, Password dan url
Penjelasan
Jika anda menggunakan Mysql isi bagian mysql, tetapi jika anda menggunakan Sqlite atau Postgres
hapus comment Configurasi dari masing masing Driver.
Untuk pengaturan Congfigurasi yang lain Di App.php yang berada di base/App.php
Oke kita masuk ketahap penggunaannya.
Disini saya memberikan contoh penggunaan dengan database.
Karena saat ini dalam contoh menggunakan Mysql jadi Setting di Config.php seperti berikut :
Secara default sudah bisa berjalan dengan lancar jika diakses http://domain.com atau http://localhost/folder dan dicontrollers sudah ada file indexController.php dan testController.php.
Buat sebuah database dengan nama perpustakaan
Lalu buat sebuah tabel dengan nama books
books
12345678910111213141516171819
CREATE TABLE IF NOT EXISTS `books` (
`id` int(11) NOT NULL,
`author` int(11) NOT NULL,
`title` varchar(70) NOT NULL,
`isbn` varchar(20) DEFAULT NULL,
`publisher` varchar(30) NOT NULL,
`year` int(4) NOT NULL,
`summary` text,
`coverMime` varchar(20) DEFAULT NULL,
`coverImage` blob,
`copies` tinyint(4) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `books` (`id`, `author`, `title`, `isbn`, `publisher`, `year`, `summary`, `coverMime`, `coverImage`, `copies`) VALUES
(1, 1, 'Creating your MySQL Database: Practical Design Tips and\r\nTechniques', '1904811302', 'Packt Publishing Ltd', 2006, 'A short guide for everyone on how to structure your data and\r\nset-up your MySQL database tables efficiently and easily.', NULL, NULL, 1),
(2, 2, 'ImageMagick Tricks', '1904811868', 'Packt Publishing\r\nLtd', 2006, 'Unleash the power of ImageMagick with this fast, friendly\r\ntutorial, and tips guide', NULL, NULL, 1),
(3, 3, 'Building Websites with Plone', '1904811027', 'Packt\r\nPublishing Ltd', 2004, 'An in-depth and comprehensive guide to the Plone content\r\nmanagement system', NULL, NULL, 1);
Model
Pembuatan model sangat mudah sebagai contoh seperti dibawah ini
Buat sebuah file didalam folder models dengan nama SiteModel.php dengan nama tabel books,
terlebih dahulu setting Configurasi database.
SiteModel
123456789101112131415161718192021
<?php
/**
* ************************************
* @author : Yudi Purwanto
* @link : http://yudi-purwanto.com
* @since : 14 May 2014
* File : SiteModel.php
*
*
**************************************/
class SiteModel extends Model
{
public function getBooks()
{
$list = ORM::table('books')->find_many();
return $list;
}
}
/* End of file SiteModel.php */
/* Location: ./models/SiteModel.php */
Note : Untuk load sebuah model didalam sebuah controller dengan cara :
root@sundi3yansyah
1
$this->loadModel('NamaModel');
Contoh :
root@sundi3yansyah
1
$this->loadModel('Site');
Controller
Kita bahas membuat sebuah controller disini saya contohkan testController.php yang mana sudah ada didalam folder controllers, nanti anda bisa mengakses http://localhost/folder/test
<?php
/**
* ************************************
* @author : Yudi Purwanto
* @link : http://yudi-purwanto.com
* @since : 14 May 2014
* File : testController.php
*
*
**************************************/
class testController extends Controller
{
//<-- * Index Error * --->
public function index() {
header ('HTTP/1.0 404 Not Found');
include 'public/error/404.php'; // Show Error 404
}
public function test()
{
$output = $this->loadModel('Site');
$this->view->title = "Testing controller";
$this->view->list = $output->getBooks();
/* Show Views */
$this->view->render('index', null);
}
}
/* End of file indexController.php */
/* Location: ./controllers/indexController.php */
View
View, seperti halnya membuat sebuah Model dan Controller, langsung saja kita ke langkah pembuatannya dari pembuatan Model dan Controller kita akan menampilkan dengan view ini. Simak contoh berikut.
Exstensi file view adalah .phtml jadi setiap membuat view dengan exstensi phtml
php Exstensi file view adalah .phtml jadi setiap membuat view dengan exstensi phtml