Tutorial Kerangka PHP MVC: Contoh CodeIgniter

Isi kandungan:

Anonim

Apakah kerangka kerja PHP MVC?

PHP MVC adalah corak reka bentuk aplikasi yang memisahkan data aplikasi dan logik perniagaan (model) dari persembahan (paparan). MVC bermaksud Model, View & Controller.

Pengawal menjadi pengantara antara model dan pandangan.

Fikirkan corak reka bentuk MVC sebagai kereta dan pemandu.

Kereta ini mempunyai cermin depan (pandangan) yang digunakan oleh pemandu (pengawal) untuk memantau lalu lintas di hadapan kemudian kelajuan atau brek (model) bergantung pada apa yang dilihatnya di hadapan.

Mengapa menggunakan PHP MVC Framework?

  • Kerangka PHP MVC mempermudah bekerja dengan teknologi yang kompleks dengan;
    • Menyembunyikan semua perincian pelaksanaan yang kompleks
    • Menyediakan kaedah standard yang boleh kita gunakan untuk membina aplikasi kita.
    • Peningkatan produktiviti pemaju, ini kerana pelaksanaan asas aktiviti seperti menyambung ke pangkalan data, membersihkan pengguna dan lain-lain sudah dilaksanakan sebahagiannya.
    • Mematuhi standard pengekodan profesional

Dalam tutorial ini, anda akan belajar-

  • Corak Reka Bentuk PHP MVC
  • Jenis kerangka PHP MVC
  • Menyerahkan aplikasi tinjauan pendapat ke CodeIgniter
  • Tetapan konfigurasi pangkalan data
  • Membuat Model Kami
  • Membuat Pandangan Kami
  • Menguji aplikasi kami

Corak Reka Bentuk PHP MVC

Mari kita bincangkan secara ringkas setiap komponen corak reka bentuk MVC.

Model - bahagian ini berkaitan dengan logik perniagaan dan data aplikasi. Ia dapat digunakan untuk melakukan validasi data, memproses data dan menyimpannya. Data boleh datang dari;

  • fail rata
  • pangkalan data
  • Dokumen XML
  • Sumber data lain yang sah.

Pengawal - ini adalah bahagian yang berkaitan dengan permintaan pengguna untuk sumber dari pelayan.

Sebagai contoh, apabila pengguna meminta URL… /index.php?products=list, pengawal akan memuatkan model produk untuk mengambil data produk kemudian mengeluarkan hasilnya dalam paparan senarai.

Ringkasnya, pengawal menghubungkan model dan pandangan bersama bergantung pada sumber yang diminta.

Pandangan - bahagian ini berkaitan dengan penyampaian data kepada pengguna. Ini biasanya dalam bentuk halaman HTML.

Jenis kerangka PHP MVC

Memilih kerangka kerja PHP terbaik adalah satu cabaran.

Anda tidak perlu menulis kerangka kerja anda sendiri untuk memanfaatkan kelebihan MVC.

Anda hanya perlu membuat reka bentuk aplikasi berkaitan MVC anda sendiri untuk memahami bagaimana kerangka kerja MVC berfungsi.

Setelah anda selesa dengan cara kerja kerangka kerja MVC, anda harus beralih ke kerangka kerja yang matang dan sudah diuji.

Jadual di bawah menerangkan secara ringkas beberapa kerangka kerja php popular dan ciri-ciri yang ditawarkan oleh setiap kerangka.

Kerangka Penerangan
CodeIgniter https://codeigniter.com/ Ini adalah salah satu kerangka PHP MVC yang paling popular. Ia ringan dan mempunyai keluk pembelajaran pendek. Ia mempunyai banyak koleksi perpustakaan yang membantu membina laman web dan aplikasi dengan cepat. Pengguna dengan pengetahuan terhad mengenai pengaturcaraan OOP juga dapat menggunakannya. Aplikasi bertenaga CodeIgniter merangkumi;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Kohana http://kohanaframework.org Ini adalah rangka kerja HMVC Model View Hierarchical yang selamat dan ringan. Ia mempunyai banyak komponen untuk mengembangkan aplikasi dengan cepat. Syarikat yang menggunakan Kohana termasuk;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Ia dimodelkan mengikut Ruby di landasan kereta api. Ia terkenal dengan konsep seperti corak reka bentuk perisian, konfigurasi konvensyen, ActiveRecord dll. Aplikasi bertenaga CakePHP merangkumi;
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Ia adalah kerangka yang kuat iaitu;
  • Selamat, boleh dipercayai, cepat, dan boleh diskalakan
  • Menyokong Web 2.0 dan penciptaan perkhidmatan web.
Ia mempunyai API dari vendor seperti Amazon, Google, Flickr, Yahoo dan lain-lain. Ia sangat sesuai untuk mengembangkan aplikasi perniagaan. Aplikasi bertenaga Zend merangkumi;
  • CMS Pimcore,
  • DotKernel.
Syarikat yang menggunakan rangka kerja Zend merangkumi;
  • BBC
  • Cisco
  • Webex
  • Tawaran.com

Menyerahkan aplikasi tinjauan pendapat ke CodeIgniter

Dalam tutorial ini, kami membuat aplikasi tinjauan PHP. Di sini, kami akan memindahkan kod itu ke CodeIgniter

  • Muat turun CodeIgniter versi terkini dari laman web mereka.
  • Ekstrak kandungan fail zip ke direktori pengembangan anda di direktori pelayan web anda. Kami akan menggunakan ciopinionpoll sebagai nama folder dalam pelajaran ini.
  • Lihat ke URL http: // localhost / ciopinionpoll /

Kami sekarang akan menghantar aplikasi tinjauan pendapat kami ke CodeIgniter. Ingatlah bahawa aplikasi kita terbahagi kepada tiga komponen utama iaitu;

  • Pengawal depan - ini adalah bahagian yang bertindak balas terhadap permintaan URL dan mengembalikan halaman yang diminta. Kod ini akan masuk ke dalam pengawal
  • Model - ini adalah kod yang bertindak balas terhadap data yang diminta dan mengembalikan data yang diminta. Kod ini akan masuk ke dalam model
  • Paparan - ini adalah kod yang bertanggungjawab untuk memformat dan memaparkan data. Kod ini akan masuk ke dalam paparan
    • Semak imbas ke folder ciopinionpoll
    • Buka fail database.php yang terdapat di direktori aplikasi / konfigurasi.
    • Cari baris kod berikut

Tetapan konfigurasi pangkalan data

  • Tetapkan nama pengguna ke root
  • Tetapkan kata laluan ke kata laluan root localhost anda
  • Nama pangkalan data untuk pendapat_poll. Perhatikan bahawa kita akan menggunakan pangkalan data yang dibuat pada pelajaran sebelumnya.
  • Simpan perubahan dan tutup fail.

Membuat Model Kami

Selanjutnya kita akan membuat model kita yang akan memperluas CI_Model. CI_Model adalah sebahagian daripada perpustakaan CodeIgniter. Model tersebut akan berada di aplikasi / model pendapat_poll_model.php

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

DI SINI,

  • "Class Opinion_poll_model memperluas CI_Model ..." adalah model kami yang memperluas CI_Model
  • "... ibu bapa :: __construct ();" memanggil pembina CI_Model
  • "$ This-> load-> database ();" memuatkan pustaka pangkalan data sehingga aplikasi kami dapat berinteraksi dengan pangkalan data
  • "$ This-> db->" adalah rekod aktif CodeIgniter. Lihat pautan ini untuk maklumat lebih lanjut mengenai rekod aktif.

Membuat Pengawal Kita Mari buat pengawal sekarang. Kami akan menggunakan pengawal CodeIgniter lalai yang terletak di aplikasi / pengendali / welcome.php. Gantikan kod sumbernya dengan kod berikut.

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

DI SINI,

  • "If (! Define ('BASEPATH')) exit ('Tidak dibenarkan akses skrip langsung');" memastikan pengguna tidak mengakses kelas pengawal secara langsung
  • "Welcome class meluaskan CI_Controller ..." pengawal kami memperluas kelas CI_Controller
  • "Fungsi awam __konstruk ()" memanggil kaedah kontraktor kelas CI_Controller dan memuatkan model Opinion_poll_model kami
  • "Public function index () ..." adalah fungsi yang memetakan ke index.php. ia menggunakan kelas input CodeIgniter untuk memeriksa apakah suara telah diserahkan, menambahkannya ke pangkalan data kemudian memaparkan hasilnya. Sekiranya susunan pos kelas input kosong, ia memuatkan halaman pengundian.
  • "$ This-> input-> post ('...')" adalah kelas input CodeIgniter yang mengambil kandungan pemboleh ubah global $ _POST.
  • "$ This-> comment_poll_model-> add_vote ($ this-> input-> post ('vote'))" memanggil kaedah add_vote model untuk menambahkan suara ke dalam pangkalan data.

Membuat Pandangan Kami

Ingat dari contoh sebelumnya bahawa kami mempunyai dua halaman HTML, satu untuk mengundi dan yang lain untuk hasil. Kami akan menggunakan kod HTML yang sama dengan pengubahsuaian minimum untuk membuat pandangan kami. Buat fail berikut dalam direktori aplikasi / paparan

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Mari sekarang buat hasil halaman hasil.php

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

Menguji aplikasi kami

Dengan andaian direktori root aplikasi anda adalah ciopinion, layari ke http: // localhost / ciopionpoll /

Klik pada butang OK, anda akan melihat mesej amaran berikut

Undi calon kegemaran anda kemudian klik OK Anda akan melihat halaman hasil berikut

Kesimpulannya

CodeIgniter adalah kerangka kerja PHP MVC yang mudah dipelajari dan dapat mengurangkan masa yang dihabiskan untuk membangunkan aplikasi.

Ringkasan

  • Kerangka kerja adalah sekumpulan perpustakaan yang menyediakan sebagian pelaksanaan tugas bersama.
  • PHP mempunyai sejumlah kerangka kerja terbuka dan teruji MVC sumber terbuka.
  • Pendekatan pengembangan yang baik memisahkan data dari persembahan dan mendorong penggunaan titik masuk tunggal ke dalam aplikasi.
  • Aplikasi PHP tradisional yang mengikuti amalan terbaik reka bentuk aplikasi boleh dibawa ke kerangka kerja MVC dengan pengubahsuaian minimum.