Di seri ini kita akan:
– Melakukan instalasi CodeIgniter dan Doctrine baru secara cepat, tanpa harus melalui detail-detail seperti pada seri sebelumnya
– Membahas kembali secara singkat mengenai konsep-konsep dasar dari CodeIgniter dan Doctrine
– Membahas kembali secara singkat mengenai konsep-konsep dasar dari CodeIgniter dan Doctrine
– Pertama kita akan mengulangi lagi mengenai Controller dan View di CodeIgniter
– Selanjutnya kita akan lanjut ke Model menggunakan Doctrine. Mulai dari sini, tutoial ini akan mulai berbeda dibanding tutorial-tutorial CodeIgniter lainnya
– Terakhir kita akan melihat contoh dari Model Doctrine dan berbicara mengenai akan menjadi apa proyek utama kita nantinya
Mulai sekarang tutorial akan menjadi lebih menarik karena kita akan menelusuri lebih lanjut kekuatan dari CodeIgniter digabung dengan Doctrine, hehe saya jamin untuk yang terbiasa dengan menggunakan query manual akan terkesima dengan apa yang bisa dilakukan dari kedua komponen tersebut.
Mari kita mulai dengan memastikan bahwaa kita mempunya instalasi CodeIgniter + Doctrine yang baru dan siap untuk mengoding hehe.
Tahap-Tahap Install Baru:
Jika anda sudah mempunyai file-file dari seri sebelumnya:
(Jika anda menggunakan instalasi baru seperti bagian di atas, lompat bagian ini)
URL pada CodeIgniter dapat terlihat seperti di bawah ini:
URL ini memanggil kelas controller yang bernama “CONTROLLER_NAME” dan memanggil fungsinya yang bernama “METHOD_NAME”
http://localhost/ci_doctrine/index.php/CONTROLLER_NAME/METHOD_NAME
Sama seperti sebelumnya, hanya saja kali ini memanggil fungsi index() secara default:
http://localhost/ci_doctrine/index.php/CONTROLLER_NAME
Sama seperti sebelumnya. Kali ini ia mengirimkan sebuah “VALUE” (nilai) sebagai argumen dari fungsi pada controller tersebut.
http://localhost/ci_doctrine/index.php/CONTROLLER_NAME/METHOD_NAME/VALUE
Nilai tersebut bisa berupa angka atau teks.
Anda bisa menambahkan nilai-nilai tambahan di URL untuk mengirimkan argumen-argumen tambahan.
Untuk lebih lanjut: Passing uri segments
Model
Kita akan menggunakan model dari Doctrine daripada CodeIgniter, hal ini akan dijelaskan di bagian kedepannya di tutorial ini.
Jika anda tetap ingin mempelajari model pada CodeIgniter, anda bisa membaca: CodeIgniter Models
View
Dokumentasi resmi ada di: CodeIgniter Views
Controller
Kita sudah mempelajari mengenai ini di seri sebelumnya. Lihat di bagian Tutorial Singkat CodeIgniter: Controller
Controller dan View
Berikut adalah contoh View (system/application/views/my_view.php):
[sourcecode language=”php”]
Beberapa teks biasa.
Anda juga bisa melakukan loop:
“;
} ?>
Atau dengan sintaks alternatif:
Counter:
[/sourcecode]
Berikut adalah contoh controller (system/application/controllers/sample_controller.php), yang me-load sebuah view:
[sourcecode language=”php”]
class Sample_controller extends Controller {
function index() {
$data = array();
$data[‘message’] = “index telah dipanggil”;
$data[‘another_message’] = “blah blah”;
$this->load->view(‘my_view’,$data);
}
}
[/sourcecode]
Kedua url berikut dapat digunakan:
http://localhost/ci_doctrine/index.php/sample_controller/index
http://localhost/ci_doctrine/index.php/sample_controller
Browser akan menampilak seperti di bawah ini:
Beberapa teks biasa.
Anda bisa menggunakan HTML.
Menampilkan variabel yang dikirim dari controller:
index telah dipanggil
blah blah
Anda juga bisa melakukan loop:
Counter: 0
Counter: 1
Counter: 2
Atau dengan sintaks alternatif:
Counter: 0
Counter: 1
Counter: 2
Catatan:
(Jika anda membuat file-file di atas (untuk mengtesnya), anda bisa menghapus file-file tersebut sekarang. Kita tidak akan menggunakannya lagi di proyek kita.)
Berikut adalah PREVIEW kecil dari jenis model yang akan kita buat. Kita akan melihat detail-detail lebih lengkapnya di seri berikutnya.
[sourcecode language=”php”]
hasColumn(‘username’, ‘string’, 255);
$this->hasColumn(‘password’, ‘string’, 255);
$this->hasColumn(’email’, ‘string’, 255, array(
’email’ => true // Untuk memvalidasi input e-mail
));
// Mendukung banyak jenis-jenis kolom, termasuk enum
$this->hasColumn(‘status’, ‘enum’, null,
array(‘values’ => array(‘unverified’, ‘verified’, ‘disabled’))
);
$this->hasColumn(‘referer_id’, ‘integer’, 4);
}
// Setup beberapa opsio
public function setUp() {
// Buat relasi dengan sebuah model bernama Post
$this->hasMany(‘Post as Posts’, array(
‘local’ => ‘id’,
‘foreign’ => ‘post_id’
));
// Juga bisa membuat relasi dengan diri sendiri
$this->hasOne(‘User as Referer’, array(
‘local’ => ‘referer_id’,
‘foreign’ => ‘id’
));
// Membuat field ‘created_at’ dan ‘updated_at’ agar diperbaharui secara otomatis
$this->actAs(‘Timestampable’);
// Field password mempunyai mutator, untuk enkripsi secara otomatis
$this->hasMutator(‘password’, ‘md5Password’);
}
// Sebuah fungsi mutator
public function md5Password($value) {
$this->_set(‘password’, md5($value));
}
}
[/sourcecode]
Setelah kita selesai membuat model Doctrine seperti di atas, sekarang kita dapat melakukan berbagai macam operasi database. Doctrine bahkan dapat membuat tabel berdasarkan informasi-informasi yang terdapat pada model saja.
Dan perlu diingat bahwa ada banyak cara untuk membuat model Doctrine, seperti menggunakan file skema. Tapi untuk sekarang kita belum akan memasuki hal tersebut.
Di seri berikutnya, kita akan memulai untuk membuat proyek, yaitu sebuah Message Board dan mungkin bisa lebih… Proyek ini menjadi kandidat yang pas untuk proyek tutorial ini mengenai Doctrine karena berbagai macam relasi terlibat pada model-model seperti: user, post, thread, forum, group, attachment, dan lain-lain
Sampai jumpa di seri berikutnya hehe ;-)
* Tutorial original oleh Burak Guzel di link ini
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…