Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan corak MVC dalam PHP?

Bagaimana untuk menggunakan corak MVC dalam PHP?

王林
王林asal
2023-05-12 08:33:231653semak imbas

Memandangkan permintaan untuk pembangunan perisian terus meningkat, model pembangunan perisian juga telah mengalami perubahan yang besar. Antaranya, corak MVC ialah corak unik yang membahagikan aplikasi kepada tiga komponen: model, pandangan dan pengawal untuk meningkatkan kebolehpercayaan dan kebolehselenggaraan pembangunan dan penyelenggaraan.

Dalam artikel ini, kita akan membincangkan konsep corak MVC dan memperkenalkan cara menggunakan corak MVC dalam PHP untuk pembangunan aplikasi web.

Apakah corak MVC?

MVC ialah corak seni bina yang biasa digunakan dalam kejuruteraan perisian untuk menjadikan organisasi dan pembangunan aplikasi perisian lebih jelas dan boleh diselenggara. Corak MVC membahagikan aplikasi kepada tiga komponen:

  • Model - Lapisan data. Mengendalikan data dan logik aplikasi.
  • Paparan - Antara muka pengguna. Paparkan data dan berinteraksi dengan pengguna.
  • Pengawal - lapisan logik perniagaan. Bertindak sebagai penyelaras antara model dan pandangan, mengendalikan permintaan pengguna, memutuskan model mana yang harus melaksanakan operasi logik, dan akhirnya mengembalikan respons kepada paparan.

Kelebihan utama corak MVC termasuk:

  • Kebolehgunaan semula: Setiap komponen boleh digunakan semula sebagai modul bebas.
  • Kebolehselenggaraan: Jadikan kod lebih jelas dan mudah untuk diubah suai.
  • Skalabiliti: membolehkan komponen ditambah atau dialih keluar untuk memenuhi keperluan tertentu.
  • Kebolehujian: Mengasingkan bahagian aplikasi yang berbeza menjadikannya lebih mudah untuk melaksanakan ujian unit dan penyepaduan.

Membangunkan aplikasi web PHP menggunakan corak MVC

Sekarang mari kita lihat cara membangunkan aplikasi web menggunakan corak MVC dalam PHP. Ya, kita boleh menggunakan corak MVC pada PHP! Tindanan teknologi yang digunakan dalam pembangunan web PHP sangat kaya, dan penggunaan model MVC telah menjadi sangat biasa. Di bawah ialah beberapa amalan terbaik untuk membangunkan aplikasi web PHP menggunakan corak MVC.

  1. Tentukan struktur fail

Apabila membangunkan aplikasi web PHP menggunakan corak MVC, langkah yang sangat kritikal ialah mentakrifkan struktur fail dengan betul. Terdapat struktur fail biasa, seperti berikut:

/app
  /controllers
  /models
  /views
/config
  /config.php
  /database.php
  /routes.php
/public
  /css
  /js
  /img
  index.php

Mari jelaskan struktur fail ini satu persatu:

  • apl: kod utama aplikasi.
  • apl/pengawal: Pengawal.
  • apl/model: Model.
  • apl/pandangan: Paparan.
  • konfigurasi: Tetapan dan konfigurasi aplikasi.
  • config/config.php: Konfigurasi global aplikasi.
  • config/database.php: Tetapan pangkalan data.
  • config/routes.php: logik penghalaan atur cara.
  • awam: Fail akses awam.
  • awam/css: helaian gaya CSS.
  • awam/js: Fail JavaScript.
  • awam/img: fail imej.
  • index.php: Pintu masuk akses HTTP.
  1. Mencipta Pengawal

Pengawal ialah salah satu komponen penting dalam corak MVC. Ia adalah lapisan logik perniagaan aplikasi dan bertanggungjawab untuk mengendalikan permintaan pengguna dan mendapatkan semula data daripada model. Berikut ialah contoh pengawal:

<?php 
// File: app/controllers/UserController.php
 
class UserController {
    public function index() {
        // Display a list of users
    }
 
    public function show($userId) {
        // Display the user with the given ID
    }
 
    public function create() {
        // Display a form to create a new user
    }
 
    public function store() {
        // Store the new user in the database
    }
 
    public function edit($userId) {
        // Display a form to edit an existing user
    }
 
    public function update($userId) {
        // Update the user in the database
    }
 
    public function delete($userId) {
        // Remove the user from the database
    }
}

Dalam contoh di atas, kami telah mencipta kelas yang dipanggil UserController. Kelas ini mengandungi banyak kaedah logik perniagaan untuk mengendalikan pelbagai permintaan pengguna, seperti indeks, tunjukkan, cipta, simpan, edit, kemas kini, padam, dsb. Kaedah ini menentukan tindakan yang perlu diambil oleh pengguna apabila meminta pengawal ini.

  1. Tentukan model

Kelas model digunakan untuk memproses data dan menyediakan interaksi dengan pangkalan data. Mereka menyimpan logik dan keadaan perniagaan aplikasi. Dalam PHP, kita boleh menggunakan mod rekod aktif untuk mencipta model. Berikut ialah contoh model:

<?php 
// File: app/models/UserModel.php
 
class UserModel {
    public function all() {
        // Return all users from the database
    }
 
    public function find($userId) {
        // Find the user with the given ID
    }
 
    public function create($userAttributes) {
        // Create a new user with the given attributes
    }
 
    public function update($userId, $userAttributes) {
        // Update the user with the given ID and attributes
    }
 
    public function delete($userId) {
        // Delete the user with the given ID
    }
}

Dalam contoh di atas, kami telah mencipta kelas yang dipanggil UserModel. Kelas ini mengandungi kaedah rekod aktif yang beroperasi pada jadual "Pengguna", seperti semua, cari, cipta, kemas kini, padam, dsb. Kaedah ini termasuk pelbagai pertanyaan yang menjalankan pelbagai operasi pangkalan data. Dengan cara ini, model merangkum pertanyaan pangkalan data yang kompleks dalam kelas yang mudah diproses dan difahami.

  1. Mencipta Pandangan

Paparan ialah komponen ketiga corak MVC. Ia adalah antara muka pengguna, memberikan data dan memaparkan antara muka kepada pengguna. Dalam PHP, kami biasanya membuat paparan menggunakan HTML, CSS dan JavaScript. Berikut ialah contoh paparan:

<!-- File: app/views/user/index.php -->
 
<h1>User Listing</h1>
 
<?php foreach ($users as $user): ?>
    <h2><?= $user->name ?></h2>
    <p><?= $user->email ?></p>
<?php endforeach ?>

Dalam contoh di atas, kami telah mencipta paparan ringkas untuk senarai pengguna. Paparan bergelung melalui objek $users yang dihantar dari model dan memaparkan nama dan alamat e-mel pengguna.

  1. Tentukan Laluan

Laluan adalah perlu, mereka mengendalikan permintaan pengguna dan menghantar permintaan kepada pengawal dan kaedah tindakan yang betul. Dalam PHP, laluan biasanya ditakrifkan dalam fail laluan berasingan. Ini memisahkan logik penghalaan daripada fail aplikasi utama. Berikut ialah contoh laluan:

<?php 
// File: config/routes.php
 
$route = new Router();
 
$route->get('/user', 'UserController@index');
$route->get('/user/:id', 'UserController@show');
$route->post('/user', 'UserController@store');
$route->put('/user/:id', 'UserController@update');
$route->delete('/user/:id', 'UserController@delete');

Dalam contoh di atas, kami mencipta pembolehubah yang dipanggil laluan dan membuat instantiate penghala baharu. Kami menentukan lima peraturan penghalaan, setiap peraturan sepadan dengan kaedah yang sepadan. Menggunakan penghala, permintaan HTTP dihalakan dengan memadankan peraturan penghalaan untuk menentukan lokasi pengawal permintaan dan kaedah tindakan.

  1. Jalankan aplikasi

Apabila semua fail sudah sedia, kami kini boleh melancarkan aplikasi dan melihat sama ada kami berfungsi dengan betul. Dalam contoh ini, kita boleh menggunakan pelayan web terbina dalam PHP untuk menyediakan pintasan untuk pembangunan, seperti arahan ini:

$ php -S localhost:8000 -t public/

当你访问 http://localhost:8000/user 时,你将会看到我们在视图中定义的用户列表。

总结

实现MVC模式需要考虑许多因素,包括应用程序的功能,代码的可用性和开发人员的经验水平。在 PHP 中使用MVC模式提供了更大的可伸缩性,可维护性和可重用性。在实践中,我们可以结合使用像 Laravel、Symfony、CakePHP、Zend Framework 2等PHP框架来加快应用程序开发。同时,我们还可以使用现代开发工具,如 Composer、Git、PHPUnit等,来协助我们更轻松地使用这些最新的MVC模式。

Atas ialah kandungan terperinci Bagaimana untuk menggunakan corak MVC dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn