Docstoc

Untangling MVC with CodeIgniter

Document Sample
Untangling MVC with CodeIgniter Powered By Docstoc
					Untangling MVC with CodeIgniter




Ketika saya pertama mulai pemrograman satunya jenis kode yang saya tulis adalah prosedural. Anda
tahu jenis, satu hal mengarah ke yang lain dengan dilempar dalam fungsi di sana-sini dan Anda memiliki
aplikasi bekerja. Saat aku tumbuh sebagai seorang programmer, saya mulai mengetahui bahwa cara
pemrograman adalah baik untuk proyek-proyek kecil tapi ketika aku mulai mengembangkan aplikasi
yang lebih besar kode saya menjadi sangat tidak teratur dan sulit untuk dibaca. Untuk mengatasi hal ini
saya mulai menulis kelas saya sendiri untuk membantu saya menulis lebih baik, kode dapat digunakan
kembali yang aku bisa gunakan di semua aplikasi saya. Kemudian saya menyadari bahwa meskipun saya
belajar banyak dengan melakukan hal ini, saya menciptakan kembali kemudi. Sebagian besar dari apa
yang saya sedang menulis telah selesai berkali-kali dalam berbagai kerangka kerja PHP. Saya mulai
melihat ke dalam pemilihan hampir tak berujung kerangka kerja PHP dan melihat sebagian besar dari
mereka juga didasarkan pada sesuatu yang disebut MVC.

Belajar memprogram menggunakan MVC adalah pergeseran paradigma yang lengkap untuk saya, tapi
juga bernilai perjuangan. Jika Anda ingin mengembangkan aplikasi dengan menjual-terstruktur, kode
yang dapat dibaca bahwa Anda dapat dengan cepat mendiagnosa masalah, maka MVC adalah untuk
Anda. Pada artikel ini saya akan menguraikan misteri MVC untuk Anda menggunakan CodeIgniter,
framework PHP berdasarkan pola MVC. Pertama kali saya akan menyajikan sebuah gambaran tingkat
tinggi dari MVC, apa itu dan bagaimana dapat membantu Anda untuk menjadi seorang programmer
yang lebih baik, dan kemudian membimbing Anda melalui menulis formulir web sederhana cara
CodeIgniter sehingga Anda dapat melihat bagaimana pola terlihat dalam tindakan .


Apa itu MVC?
MVC adalah singkatan lain Anda akan ingin menambah buku yang tak ada habisnya Anda akronim,
melainkan singkatan dari Model-View-Controller dan merupakan pola desain perangkat lunak arsitektur.
Mengikuti pola MVC akan memisahkan logika aplikasi Anda dari data dan presentasi. Jika Anda pernah
melihat kode seperti ini:

<?php if($somthing == $thisthing) echo "<p>Hello there</p>"; ?>
maka Anda benar-benar memahami bagaimana halaman penuh dicampur PHP dan HTML dapat
menjadi benar-benar keras untuk mempertahankan dan membaca. Jadi mari kita lihat setiap
bagian dari MVC dan melihat apa bagian masing-masing mewakili.

   Model - merangkum data Anda rutinitas manajemen. Biasanya ini adalah bagian dari kode
Anda yang mengambil, insert, update, menghapus dan data dalam database Anda (atau apapun
yang Anda gunakan untuk menyimpan data).
   Tampilkan - merangkum informasi yang disajikan kepada pengguna. Ini adalah halaman web
yang sebenarnya, RSS feed, atau bahkan bagian dari halaman seperti header footer.
   Controller - mengkoordinasikan bagian Model dan View dari aplikasi Anda untuk
menanggapi permintaan tersebut. Sebuah controller menerima input dari user dan
menginstruksikan model dan tujuan untuk melakukan tindakan berdasarkan masukan itu;
mengontrol arus informasi dalam aplikasi.


Untuk lebih memahami bagaimana pola MVC bekerja, mari kita lihat langkah-langkah yang
akan mengambil untuk kode bentuk PHP menggunakan pola ini.

    Pengguna berinteraksi dengan View yang menyajikan formulir web.
    Pengguna mengajukan formulir, dan Controller menerima permintaan POST. Melewati data
ini untuk Model.
    Update Model dan query database dan mengirimkan hasilnya kembali ke Controller.
    Controller yang melewati respon Model untuk View.
    The View update sendiri dengan data baru dan ditampilkan kepada pengguna.



Instalasi CodeIgniter
Dengan kerangka kerja MVC begitu banyak di luar sana, bagaimana Anda memutuskan mana yang harus
memilih - jangan mereka semua memberikan fungsi yang sama hanya berbeda sedikit dalam
pelaksanaannya dan sintaks? Saya belum pernah menggunakan kerangka kerja sebelum jadi saya harus
membaca banyak dokumentasi dan bereksperimen dengan mereka untuk mengetahui mana yang tepat
untuk saya. Saya menemukan bahwa CodeIgniter memiliki kurva belajar jauh lebih kecil kemudian yang
lain, yang mungkin mengapa ia memiliki reputasi untuk menjadi bagus untuk pemula. Dokumentasi itu
sangat jelas dan memberikan contoh kode untuk membantu Anda di sepanjang jalan. Meskipun dalam
artikel ini saya akan menggunakan CodeIgniter, konsep MVC akan berlaku untuk hampir semua kerangka
yang Anda pilih.

CodeIgniter adalah menang untuk menginstal dan mengkonfigurasi sistem untuk Anda. Ikuti langkah-
langkah dan Anda akan berdiri dan berjalan dalam waktu kurang dari lima menit.

  Download versi terbaru dari CodeIgniter. Pada tulisan ini, versi terbaru adalah 2.0.3.
  Uncompress arsip dan menempatkan direktori terkompresi di root web Anda.
  Ubah nama direktori dari CodeIgniter_2.0.3 untuk CI
   Buka CI / aplikasi / config / config.php dan mengubah URL dasar ke server Anda. Dalam kasus saya, itu
adalah: $ config ['base_url'] = "http://localhost/CI";
   Masuk ke direktori CI pada server menggunakan web browser Anda. Sekali lagi, dalam kasus saya itu
http://localhost/CI.




Sekarang bahwa Anda memiliki segala sesuatu terinstal, anda akan mungkin melihat semua direktori
yang CodeIgniter memiliki. Jangan terintimidasi, Anda tidak akan harus berurusan dengan sebagian dari
mereka karena sebagian besar pekerjaan Anda akan berlangsung dalam sistem / direktori aplikasi.

Mencari di direktori system / aplikasi terdapat subdirektori bernama controller, model, dan pandangan.
Di sinilah Anda akan menempatkan file Anda untuk aplikasi Anda. File controller Anda akan berada
dalam direktori controller, model file dalam direktori model, dan melihat file di direktori pandangan.

Kurang Talk, Kode Lebih

Sekarang bahwa Anda memiliki pemahaman dasar tentang apa arsitektur MVC adalah dan telah
CodeIgniter diinstal, mari kita turun ke beberapa coding. Dalam contoh ini Anda akan membuat
bentuk yang sangat sederhana untuk mengumpulkan alamat email dengan menggunakan bentuk
kelas pembantu CodeIgniter dan perpustakaan bentuk validasi. Mari kita mulai.
Buat Controller

Buat file baru dalam aplikasi Anda / controllers direktori phpmasterform.php bernama yang
berisi kode berikut:
01 <?php
02 class Phpmasterform extends CI_Controller
03 {
04      public function index() {
05           // Load the Form helper which provides methods to assist
06           // working with forms.
07           $this->load->helper("form");
08           // Load the form validation classes
09           $this->load->library("form_validation");
10
11           // As you have loaded the validation classes, you can now
12           // apply rules to the fields you want validated. The
13           // functions below take three arguments:
14           //     1. The name of form field
15           //       2. The human name of the field to be displayed in
16           //          the event of an error
17           //     3. The names of the validation rules to apply
18           $this->form_validation->set_rules("first", "First Name",
19               "required");
20           $this->form_validation->set_rules("last", "Last Name",
21               "required");
22           $this->form_validation->set_rules("email", "Email Address",
23                "required|valid_email");
24
25           // Check whether the form validates. If not, present the
26           // form view otherwise present the success view.
27           if ($this->form_validation->run() == false) {
28                $this->load->view("phpmasterform_view");
29           }
30           else {
31                $this->load->view("formsuccess");
32           }
33      }
34 }



Buat Views

Selanjutnya, membuat file dalam aplikasi Anda / direktori pandangan disebut phpmasterform_view.php
dengan kode ini:
01 <?php
02 // Display any form validation error messages
03 echo validation_errors();
04
05 // Using the form helper to help create the start of the form code
06 echo form_open("phpmasterform");
07 ?>
08    <label for="first">First Name</label>
09     <input type="text" name="first"><br>
10
11     <label for="last">Last Name</label>
12     <input type="text" name="last"><br>
13
14     <label for="email">Email Address</label>
15     <input type="text" name="email"><br>
16
17   <input type="submit" name="submit" value="Submit">
18 </form>
19 </html>



Buat file aplikasi / views / formsuccess_view.php dengan kode ini yang akan menunjukkan kemudian
ketika formulir berhasil disampaikan:

01 <html>

02 <head>

03   <title>Form Success</title>

04   </head>

05 <body>

06   <h3>Your form was successfully submitted!</h3>

07   <p><a href="http://localhost/CI/index.php/phpmasterform">Enter a new

08 email address!</a></p>

09 </body>

10 </html>
Sekarang kunjungi http://localhost/CI/index.php/phpmasterform/index dan Anda akan melihat formulir
Anda yang baru dibuat:




URL ini mengikuti pola ini dalam aplikasi Anda:

http://yourwebroot/ [kontroler kelas] / [-controller metode] / [agruments]

Berikut phpmasterform adalah kelas controller, dan indeks adalah metode yang diinginkan. Jika Anda
berganti nama menjadi metode untuk myForm (), URL akan berubah seperti ini:

http://localhost/CI/index.php/phpmasterform/myForm

Dengan tidak adanya suatu metode dalam URL, CodeIgniter akan menganggap indeks.

Kemudian ajukan tanpa masukan dalam bidang teks untuk mencoba validasi. Anda akan melihat
CodeIgniter menegakkan aturan yang Anda buat sebelumnya di controller dan menampilkan pesan
kesalahan.
Buat Model

Sekarang bahwa Anda telah membentuk Anda dibangun, Anda perlu tempat untuk menyimpan semua
nama dan alamat email. Buat alamat tabel dengan pernyataan berikut dalam database Anda:

1 CREATE TABLE addresses (
2     id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
3      last_name VARCHAR(128) NOT NULL,
4      first_name VARCHAR(128) NOT NULL,
5      email VARCHAR(128) NOT NULL,
6      PRIMARY KEY (id)
7 );
Dengan tabel database di tempat, sekarang Anda harus memberitahu CodeIgniter mana tempatnya.
Buka aplikasi / config / database.php dan masukkan identitasnya database Anda. Tentukan nilai-nilai
yang sesuai untuk nama pengguna, nama host, password, database, dan kunci dbdriver.

Setelah itu, buat aplikasi / model / phpmasterform_model.php dengan kode ini:

1 <?php
2 class Phpmasterform_model extends CI_Model
3{
4      public function insert_address($data) {
5             $this->load->database();
6             $this->db->insert("addresses", $data);
7      }
8}



Kelas ini memiliki metode bernama insert_address () yang menerima array nilai berlalu dalam dari
controller. CodeIgniter memiliki kelas database built in sehingga Anda tidak perlu menulis SQL sama
sekali; $ this-> db-> insert () secara otomatis akan menghasilkan dan mengeksekusi SQL untuk Anda.
Cobalah Out

Untuk menggunakan model dari controller, buka aplikasi / controllers / phpmasterform.php dan
memperbarui metode indeks () sebagai berikut:

01 <?php
02 public function index() {
03         $this->load->helper("form");
04         $this->load->library("form_validation");
05
06         $this->form_validation->set_rules("first", "First Name",
07             "required");
08         $this->form_validation->set_rules("last", "Last Name",
09             "required");
10         $this->form_validation->set_rules("email", "Email Address",
11             "required|valid_email");
12
13         if ($this->form_validation->run() == false) {
14              $this->load->view("phpmasterform_view");
15         }
16         else {
17             $first = $_POST["first"];
18             $last = $_POST["last"];
19             $email = $_POST["email"];
20           $data = array("first_name" => $first,
21                              "last_name" => $last,
22                              "email" => $email);
23
24           $this->load->model("phpmasterform_model");
25           $this->phpmasterform_model->insert_address($data);
26           $this->load->view("formsuccess");
27      }
28 }



Data yang masuk diposting dari bentuk ditempatkan ke array asosiatif untuk diteruskan ke metode
insert_address () model. Perhatikan kunci dalam array memiliki nama yang sama seperti kolom dalam
tabel alamat. Hal ini penting untuk langkah terakhir dalam menciptakan model. Kemudian model ini
sarat dengan $ this-> load-> model (), data akan diteruskan ke insert_address () metode, dan tampilan
keberhasilan ditampilkan.

Kembali ke http://localhost/CI/index.php/phpmasterform dan masukkan beberapa data. Jika Anda
mengisi semua bidang teks dengan benar, Anda akan melihat halaman keberhasilan dan data sekarang
dalam database Anda.




ringkasan

Mudah-mudahan Anda sekarang mengerti apa MVC adalah semua tentang, cara untuk
memisahkan potongan-potongan kode Anda berdasarkan fungsinya untuk menjaga semuanya
lebih terorganisir. Meskipun CodeIgniter terjadi menjadi kerangka saya pilihan, pengetahuan
tentang pola ini berlaku untuk hampir semua kerangka kerja lainnya yang Anda pilih, dan tentu
saja Anda dapat menerapkannya dalam kode Anda sendiri tanpa kerangka juga.

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:27
posted:9/7/2012
language:Indonesian
pages:8