Memahami PHP dan MVC Pattern

Model-View-Control (MVC) pola, awalnya dirumuskan di akhir 1970-an, adalah pola arsitektur perangkat lunak yang dibangun atas dasar menjaga presentasi data terpisah dari metode yang berinteraksi dengan data. Secara teori, sistem MVC berkembang dengan baik harus memungkinkan pengembang front-end dan pengembang back-end untuk bekerja pada sistem yang sama tanpa mengganggu, berbagi, atau mengedit file salah satu pihak bekerja pada.

Meskipun MVC awalnya dirancang untuk komputasi personal, telah diadaptasi dan digunakan secara luas oleh pengembang web karena penekanan pada pemisahan keprihatinan, dan dengan demikian secara tidak langsung, kode dapat digunakan kembali. pola mendorong pengembangan sistem modular, memungkinkan pengembang untuk dengan cepat memperbarui, menambah, atau bahkan menghapus fungsi.

Pada artikel ini, saya akan pergi prinsip-prinsip dasar MVC, lari melalui definisi dari pola dan contoh cepat dari MVC di PHP. Ini jelas membaca bagi siapa saja yang tidak pernah coding dengan MVC sebelum atau mereka yang ingin memoles keterampilan pengembangan MVC sebelumnya.

memahami MVC

Judul pola ini adalah pemeriksaan dari tiga bagian inti: Model, View, dan Controller. Sebuah representasi visual dari pola MVC lengkap dan benar terlihat seperti diagram berikut :

MVC-Process

Gambar menunjukkan tata letak aliran data tunggal, bagaimana hal itu lewat di antara masing-masing komponen, dan akhirnya bagaimana hubungan antara masing-masing komponen bekerja.

Model

Model adalah nama yang diberikan untuk penyimpanan permanen data yang digunakan dalam desain keseluruhan. Ini harus memungkinkan akses untuk data yang akan dilihat, atau dikumpulkan dan ditulis untuk, dan merupakan jembatan antara komponen View dan komponen Controller pada pola keseluruhan.

Salah satu aspek penting dari Model adalah bahwa secara teknis “buta” – dengan ini saya berarti model tidak memiliki koneksi atau pengetahuan tentang apa yang terjadi pada data ketika akan diteruskan ke View atau komponen Controller. Ini tidak menyebut atau mencari respon dari bagian lain; satu-satunya tujuan adalah untuk mengolah data menjadi penyimpanan permanen atau mencari dan mempersiapkan data yang akan diteruskan ke bagian lain.

Model, bagaimanapun, tidak bisa hanya disimpulkan sebagai database, atau gateway ke sistem lain yang menangani proses data. Model harus bertindak sebagai gatekeeper untuk data itu sendiri, meminta tidak ada pertanyaan tapi menerima semua permintaan yang datang jalan. Seringkali bagian paling kompleks dari sistem MVC, komponen Model juga merupakan puncak dari seluruh sistem karena tanpa itu tidak ada hubungan antara Controller dan View.

View

The View adalah tempat data, diminta dari Model, dilihat dan output akhir ditentukan. Tradisional dalam aplikasi web dibangun dengan menggunakan MVC, View adalah bagian dari sistem di mana HTML yang dihasilkan dan ditampilkan. The View juga menyatu reaksi dari pengguna, yang kemudian melanjutkan untuk berinteraksi dengan Controller. Contoh dasar ini adalah tombol yang dihasilkan oleh View, yang pengguna mengklik dan memicu tindakan di Controller.

Ada beberapa kesalahpahaman yang dimiliki tentang View komponen, terutama oleh pengembang web menggunakan pola MVC untuk membangun aplikasi mereka. Sebagai contoh, banyak kesalahan View sebagai tidak memiliki hubungan apa pun dengan Model dan bahwa semua data yang ditampilkan oleh View dilewatkan dari Controller. Pada kenyataannya, aliran ini mengabaikan teori di balik pola MVC sepenuhnya. Artikel Fabio Cevasco ini The Framework CakePHP: Bite Pertama Anda menunjukkan pendekatan bingung ini untuk MVC dalam rangka CakePHP, contoh dari banyak non-tradisional kerangka kerja MVC PHP tersedia:

“Sangat penting untuk dicatat bahwa untuk benar menerapkan arsitektur MVC, harus tidak ada interaksi antara model dan tampilan: semua logika ditangani oleh controller”

Selanjutnya, deskripsi Views sebagai file template tidak akurat. Namun, seperti yang ditunjukkan Tom Butler keluar, ini bukan kesalahan satu orang tetapi banyak kesalahan oleh banyak pengembang yang mengakibatkan pengembang belajar MVC tidak benar. Mereka kemudian pergi untuk mendidik orang lain secara tidak benar. The View benar-benar jauh lebih dari sekedar template, namun yang modern kerangka kerja MVC terinspirasi telah bastardised pandangan hampir ke titik bahwa tidak ada yang benar-benar peduli apakah atau tidak suatu kerangka benar-benar menganut pola MVC yang benar atau tidak.

Ini juga penting untuk diingat bahwa View bagian tidak pernah diberikan data dengan Controller. Seperti yang saya sebutkan ketika membahas Model, tidak ada hubungan langsung antara View dan Controller tanpa Model di antara mereka.

Controller

Komponen terakhir dari tiga serangkai adalah Controller. Tugasnya adalah untuk menangani data bahwa pengguna masukan atau menyampaikan, dan memperbarui Model yang sesuai. darah kehidupan Controller adalah pengguna; tanpa interaksi pengguna, Controller tidak memiliki tujuan. Ini adalah satu-satunya bagian dari pola pengguna harus berinteraksi dengan.

Controller dapat disimpulkan hanya sebagai kolektor informasi, yang kemudian dibagikan pada Model yang akan diselenggarakan untuk penyimpanan, dan tidak mengandung logika apapun selain yang diperlukan untuk mengumpulkan input. Controller juga hanya terhubung ke View tunggal dan Model tunggal, membuatnya menjadi salah satu cara sistem aliran data, dengan jabat tangan dan signoffs di setiap titik pertukaran data.

Sangat penting untuk diingat Controller hanya diberikan tugas untuk melakukan ketika pengguna berinteraksi dengan View pertama, dan bahwa setiap fungsi Controller adalah pemicu, berangkat dengan interaksi pengguna dengan View. Kesalahan paling umum yang dibuat oleh pengembang membingungkan Controller untuk gateway, dan akhirnya menugaskan fungsi dan tanggung jawab bahwa View harus memiliki (ini biasanya hasil dari pengembang yang sama membingungkan View komponen hanya sebagai template). Selain itu, itu adalah kesalahan umum untuk memberikan fungsi Pengendali yang memberikan tanggung jawab berderak, melewati, dan pengolahan data dari Model ke View, sedangkan dalam pola MVC hubungan ini harus dijaga antara Model dan View.

MVC di PHP

Hal ini dimungkinkan untuk menulis aplikasi web di PHP yang arsitekturnya didasarkan pada pola MVC. Mari kita mulai dengan yang paling sederhana .

 

Kami memiliki proyek kami mulai dengan beberapa kelas yang sangat dasar untuk setiap bagian dari pola . Sekarang kita perlu mengatur hubungan antara mereka :

Seperti yang Anda lihat dalam contoh di atas , kita tidak memiliki fungsi Pengendali khusus (controller) karena kita tidak memiliki interaksi yang ditetapkan pengguna dengan aplikasi kita .  View memegang semua fungsi murni untuk tujuan tampilan .

Sekarang mari kita memperluas contoh untuk menunjukkan bagaimana kita akan menambahkan fungsi ke controller , sehingga menambah interaktivitas untuk aplikasi :

Kami telah menyempurnakan aplikasi dengan beberapa fungsi dasar . Menyiapkan hubungan antara komponen kami sekarang terlihat seperti ini :

Menjalankan kode dan ketika Anda klik pada link Anda akan dapat melihat string mengubah datanya .

Kesimpulan

Kami telah membahas teori dasar di balik pola MVC dan telah menghasilkan aplikasi MVC sangat dasar, tapi kami masih memiliki jalan panjang untuk pergi sebelum kita masuk ke setiap fungsi seluk-beluk.

Selanjutnya dalam seri kita akan membahas beberapa pilihan yang Anda hadapi ketika mencoba untuk membuat aplikasi MVC  di web di PHP. Tetap disini!

sumber asli : http://www.sitepoint.com/the-mvc-pattern-and-php-1/

Facebook Comments