Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Aplikasi corak MVC dalam PHP

Aplikasi corak MVC dalam PHP

WBOY
WBOYasal
2023-05-11 15:22:361254semak imbas

Corak MVC ialah corak reka bentuk yang digunakan secara meluas dalam pembangunan perisian. Corak MVC membahagikan aplikasi kepada tiga bahagian bebas: model, paparan dan pengawal. Dalam corak ini, model bertanggungjawab untuk memproses data, pandangan bertanggungjawab untuk memaparkan data, dan pengawal bertanggungjawab untuk mengendalikan input dan operasi pengguna. Corak MVC digunakan secara meluas dalam PHP, dan banyak rangka kerja PHP menggunakan corak ini.

Kelebihan model MVC adalah jelas. Pertama, ia menjadikan aplikasi lebih mudah untuk diselenggara dan menggalakkan kebolehgunaan semula kod. Kedua, corak MVC mengabstrak data dan logik perniagaan, menjadikan pandangan dan pengawal lebih bebas. Ini menjadikannya lebih mudah untuk menggunakan semula dan mengubah suainya. Akhir sekali, corak MVC menjadikan aplikasi lebih mudah untuk diuji. Oleh kerana model, paparan dan pengawal adalah berasingan, lebih mudah untuk menskrip ujian automatik.

Terdapat dua cara untuk melaksanakan corak MVC dalam PHP: pelaksanaan manual dan menggunakan rangka kerja. Pelaksanaan manual memerlukan lebih banyak masa dan usaha kerana anda perlu menulis semua kod dan skrip ujian sendiri. Menggunakan rangka kerja memudahkan proses ini dan menyediakan banyak ciri hebat seperti penghalaan, enjin templat dan ORM.

Berikut ialah pelaksanaan model MVC ringkas dalam PHP:

Pertama, kita perlu mencipta pengawal mudah. Peranan pengawal adalah untuk mengendalikan permintaan pengguna, memanggil model dan memaparkan pandangan.

class HomeController {
  public function index() {
    // 调用模型来获取数据
    $data = (new UserModel())->get();

    //渲染视图
    (new View())->render('home.index', $data);
  }
}

Pengawal di atas termasuk kaedah "indeks", yang memanggil objek "UserModel" untuk mendapatkan data dan memberikan paparan. Berikut ialah kod kelas "UserModel" dalam corak MVC:

class UserModel {
  // 数据库连接
  private $pdo;

  public function __construct() {
    //建立数据库连接
    $this->pdo = new PDO('mysql:host=localhost;dbname=phpmvc', 'root', '');
  }

  public function get() {
    //查询所有用户
    $stmt = $this->pdo->prepare('SELECT * FROM users');
    $stmt->execute();

    //返回所有用户数据
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
  }
}

Kelas UserModel termasuk kaedah "dapat" yang menanyakan semua pengguna dalam pangkalan data dan mengembalikan hasilnya.

Akhir sekali, kita perlu mencipta pandangan yang mudah. Peranan paparan adalah untuk menjadikan data ke dalam HTML dan menghantarnya ke penyemak imbas pengguna. Apabila menggunakan corak MVC, sesetengah enjin templat biasanya digunakan untuk memproses HTML.

<!DOCTYPE html>
<html>
  <head>
    <title>用户列表</title>
  </head>
  <body>
    <h1>用户列表</h1>
    <table>
      <thead>
        <tr>
          <th>ID</th>
          <th>姓名</th>
          <th>邮箱</th>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($users as $user): ?>
          <tr>
            <td><?php echo $user['id']; ?></td>
            <td><?php echo $user['name']; ?></td>
            <td><?php echo $user['email']; ?></td>
          </tr>
        <?php endforeach ?>
      </tbody>
    </table>
  </body>
</html>

Kod HTML di atas memaparkan semua data pengguna dan kemudian membentangkannya kepada pengguna melalui corak MVC.

Ringkasan: Corak MVC digunakan secara meluas dalam PHP dan boleh dilaksanakan secara manual atau menggunakan rangka kerja. Corak ini mempunyai banyak kelebihan; ia boleh menjadikan aplikasi lebih mudah untuk diselenggara, membolehkan kebolehgunaan semula kod, dan menjadikannya lebih mudah untuk diuji.

Atas ialah kandungan terperinci Aplikasi 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