FullStack Academy

Mini Project sử dụng PHP với MVC

Các bạn đã học xong phần lý thuyết MVC, giờ chúng ta cùng đến với một mini project sử dụng PHP, MySQL, OOP và MVC nhé để cho rõ hơn nhé.

1. Code mẫu


Dự án minh họa


Trong bài này chúng ta sẽ làm một ứng dụng web minh họa quản lý học sinh đơn giản:



Thiết kế cơ sở dữ liệu

Đầu tiên ta cần tạo một database có tên students
Trong database có tên students, chúng ta tạo một bảng students như bên dưới



Tổ chức chương trình và source code

– Đầu tiên ta cần có 1 điểm truy cập ban đầu để vào được ứng dụng, file index.php đảm nhận nhiệm vụ này. “Cổng vào” ban đầu này sẽ đóng vai trò hiển thị hết những tính năng mà ứng dụng có, và cho người dùng truy cập vào chức năng mong muốn (controller tương ứng), ở đây để đơn giản thì ta chỉ cài đặt 1 chức năng là “quản lí học sinh”. (Ta vẫn có thể truy cập trực tiếp vào từng chức năng cụ thể ở các file controller)

– Trong ví dụ tới này, mình sẽ tổ chức source code minh hoạ như mô hình sau đây:



a. Tầng Controller

<?php

include_once("../Model/StudentModel.php");

//1. Declaration

class  StudentController
{
    public function invoke(){
        if(isset($_GET['stid'])) {
            $modelStudent =  new StudentModel();
            $student = $modelStudent->getStudentDetail($_GET['stid']);
            
            include_once("../View/StudentDetail.html");
n        } else {
            $modelStudent =  new StudentModel();
            $studentList = $modelStudent->getAllStudents();
            
            include_once("../View/StudentList.html");
        }
    }
};


//////////////////////////////////////
//2. Process

$studentController = new StudentController();
$studentController->invoke();


b. Tầng Model và các lớp thực thể (Entity class)

- Entity Class:

<?php

class StudentEntity
{
    public $id;
    public $name;
    public $age;
    public $university;
    
    public function __construct($_id, $_name, $_age, $_university)
    {
        $this->id = $_id;
        $this->name = $_name;
        $this->age = $_age;
        $this->university = $_university;
    }
}

- Model Class:


c. Tầng View






2. Kết luận

– Mô hình MVC là mô hình thông dụng và tiện lợi hàng đầu trong việc phát triển ứng dụng web, trên đây trình bày cơ bản về mô hình MVC và các thức của nó hoạt động, các framework khác cũng sẽ tạo ra mô hình MVC với cấu trúc gần tương tự như trên.

– Một vài lợi điểm của MVC:

  • Tách biệt Model và View, tạo sự linh hoạt khi thay đổi ứng dụng (giao diện, xử lí, …)
  • Tầng Model và View có thể thay đổi, chỉnh sửa 1 cách độc lập. Ta có thể tạo các ứng dụng giao tiếp thông minh hơn chỉ bằng cách thay đổi View, hoặc cũng có thể thay thế Database bằng các sử dụng Web service, …