Terpesona oleh tutorial mengenai CodeIgniter dan Doctrine oleh Burak Guzel, seorang developer web PHP di Arizona yang berasal dari Istanbul, saya menyadur tutorial dia agar dapat lebih banyak dibaca oleh programmer PHP lokal dan tentu saja dengan seizin dia dan bumbu-bumbu tambahan dari saya hehe. Tutorial original dia ada di link ini
Mungkin masih banyak pengembang PHP di Indonesia yang suka ngotak-ngatik PHP dari awal. Contohnya untuk membuat validasi form HTML aja, kalau gak buat sendiri validasinya ya comot sana-sini di internet. Masalah keamanan data juga seperti pencegahan SQL Injection mungkin banyak yang menggunakan fungsi konversi query yang ada di PHP dan menggunakannya di ratusan baris kodingan. Hehe, lama kelamaan cara seperti ini akan membuat para pengembang PHP capek sendiri karena terus menerus melakukan kodingan yang itu-itu aja untuk fungsi yang sama dan memakan banyak waktu.
Untuk mengatasi berbagai macam masalah-masalah di pengembangan PHP seperti yang disebutkan di atas, ada cara yang dapat mempermudah kalian dalam membuat web menggunakan PHP, yaitu dengan menggunakan framework. Framework yang akan dibahas di tutorial berseri ini adalah CodeIgniter dan Doctrine.
Sebelum kita mulai, saya jelaskan kenapa menggunakan 2 framework di sini dengan penambahan framework Doctrine. Doctrine adalah Pemeta Relasi Objek (Object Relation Mapper) pada PHP. Tidak masalah jika anda tidak paham dengan istilah ini, hehe. Intinya anda dapat memetakan tabel-tabel database anda menjadi kelas-kelas di aplikasi web anda. Dan instance dari kelas-kelas ini (contohnya objek) merepresentasikan record pada database.
Ini memudahkan kita untuk membuat, membaca, mengubah dan menghapus record-record di database, sembari menanganinya hampir seperti objek biasa, jadi kita tidak perlu menulis query apapun. Ia juga akan menangani relasi antara tabel-tabel. Ada keuntungan-keuntunga lainnya yang akan dibahas sejalan dengan tutorial ini. Lihat dokumentasi Doctrine jika anda ingin melihat info-info selanjutnya sekarang.
Berikut adalah ilustrasi mengenai cara kerja Doctrine dengan CodeIgniter:
Jika anda sudah mempunyai web server dengan PHP dan MySQL, anda bisa melompati beberapa poin di bawah.
Folder baru anda akan tampak seperti di bawah ini:
Anda akan melihat tampilan seperti di bawah ini:
Controller dipanggil oleh Code Igniter setiap membuka halaman web. Controller terletak di:
system/application/controllers/
Struktur url-nya terlihat seperti di bawah ini:
http://localhost/ci_doctrine_day1/index.php/NAMA_CONTROLLER/NAMA_FUNGSI
Sebagai contoh anda dapat membuka url di bawah ini:
http://localhost/ci_doctrine_day1/index.php/hello/world
CodeIgniter akan mencari kelas controller bernama “Hello” dan memanggil fungsi bernama “world()”.
Sekarang kita akan membuat controller pertama kita.
Anda akan melihat seperti di bawah ini:
Hello CodeIgniter!
Harap diingat poin-poin di bawah ini:
Untuk lebih lanjut anda bisa membaca artikel ini:
CodeIgniter memungkinkan kita untuk menambahkan plug-in. Itulah cara yang akan kita gunakan untuk menginstall Doctrine.
Sekarang struktur folder anda akan terlihat seperti di bawah ini:
// pertama kita harus mengkonversikan ke format dsn
$dsn = $db[$connection_name][‘dbdriver’] .
‘://’ . $db[$connection_name][‘username’] .
‘:’ . $db[$connection_name][‘password’].
‘@’ . $db[$connection_name][‘hostname’] .
‘/’ . $db[$connection_name][‘database’];
Doctrine_Manager::connection($dsn,$connection_name);
}
// Kelas Model CodeIgniter perlu di-load
require_once BASEPATH.’/libraries/Model.php’;
// Memberitahukan Doctrine dimana model-model terletak
Doctrine::loadModels(APPPATH.’/models’);
// KONFIGURASI OPSIONAL
// Ini memungkinkan kita untuk menggunakan “mutator”
Doctrine_Manager::getInstance()->setAttribute(
Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE, true);
// Ini mengeset semua kolom tabel ke notnull dan unsigned (untuk tipe data integer) secara default
Doctrine_Manager::getInstance()->setAttribute(
Doctrine::ATTR_DEFAULT_COLUMN_OPTIONS,
array(‘notnull’ => true, ‘unsigned’ => true));
// Set default nama primary ke ‘id’, integer, 4 bytes
Doctrine_Manager::getInstance()->setAttribute(
Doctrine::ATTR_DEFAULT_IDENTIFIER_OPTIONS,
array(‘name’ => ‘id’, ‘type’ => ‘integer’, ‘length’ => 4));
[/sourcecode]
Baca komentar-komentar yang terdapat di kodingan di atas untuk penjelasan. Tidak masalah untuk saat ini jika anda tidak mengerti semuanya, kedepannya anda akan mengerti dengan sendirinya.
$db[‘default’][‘hostname’] = “localhost”;
$db[‘default’][‘username’] = “root”;
$db[‘default’][‘password’] = “”;
$db[‘default’][‘database’] = “ci_doctrine”;
// …
[/sourcecode]
Kita baru saja mengubah file konfigurasi database dari CodeIgniter.
Semoga pembaca belum capek untuk mengkofigurasi Doctrine hehe, tenang saja sebentar lagi akan seleasi kita mengkofigurasinya.
config.php
$config[‘base_url’] = “http://localhost/ci_doctrine_day1/”;
// …
[/sourcecode]
Sekarang CodeIgniter sudah mengetahui url dari situs kita.
autoload.php
$autoload[‘plugin’] = array(‘doctrine’);
// …
[/sourcecode]
Ini memastikan bahwa plug-in Doctrine akan selalu di-load.
Selesai!
Sekarang kita dapat lanjut untuk otak-atik Doctrine hehe. Kita mulai dengan mengetes hasil setup kita.
Buat Tabel User
Anda dapat menggunakan query di bawah ini untuk melakukan hal di atas:
[sourcecode language=”sql”]
CREATE TABLE `ci_doctrine`.`user` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 255 ) NOT NULL ,
`password` VARCHAR( 255 ) NOT NULL ,
`first_name` VARCHAR( 255 ) NOT NULL ,
`last_name` VARCHAR( 255 ) NOT NULL ,
UNIQUE (
`username`
)
)
[/sourcecode]
Membuat Model
}
[/sourcecode]
Catatan:
Mengetes Model: Menambahkan Beberapa User
$u2 = new User;
$u2->username = ‘phprocks’;
$u2->password = ‘mypass’;
$u2->first_name = ‘Codeigniter’;
$u2->last_name = ‘Doctrine’;
$u2->save();
echo “2 user telah berhasil ditambahkan”;
}
}
[/sourcecode]
Kita baru saja membuat 2 objek, dan mengisinya dengan beberapa data. Hanya dengan memanggil fungsi save() akan menyimpan data-data tersebut ke dalam database, sangat mudah bukan hehe.
Catatan:
Anda akan melihat tampilan seperti di bawah ini:
2 user telah berhasil ditambahkan
OK! Sekarang anda akan melihat 2 record baru telah dibuat
Kita baru saja melihat bagaimana caranya meng-install dan men-setup CodeIgniter dengan Doctrine. Agak banyak yang kita lakuakan memang, namun sekarang kita sudah mendapatkan framework MVC yang kuat dan kombinasi dengan ORM.
Di tutorial selanjutnya, kita akan mecoba contoh-contoh yang lebih praktikal dan nantinya akan membuat website yang berfungsi. Anda akan melihat bagaimana mudahnya membuat model dengan menggunakan Doctrine dan mengirit waktu dari harus menulis kodingan CRUD (Create, Read, Update, Delete) berulang-ulang di semua model-model.
Doctrine juga membantu kita untuk menangani relasi antar kelas, dan menghindari kita dari menuliskan kodingan serta query yang kompleks.
Sampai ketemu di seri berikutnya!
Cisco mengungkapkan tiga kerentanan dalam layanannya. Ini dia penanganannya!
Ini ulasan mengenai keuntungan OptimalCloud Partner Platform, platform baru milik Optimal idM!
Google kenalkan dua koleksi baru dari Coral. Dua koleksi baru ini bakal menambah kemampuan pengembangan…
Raksasa Google baru saja mengembangkan sistem pemindaian kanker payudara berbasis kecerdasan buatan. Bagaimana hasilnya, berikut…
Meski dikenalkan bersamaan dengan Android 10 Beta, sampai kini Bubbles Notifications masih dalam tahap pengembangan.…
Samsung akan kembali memamerkan hasil program C-Lab ke ajang CES 2020. Ini dia proyek dan…