Chúng tôi sẽ tạo một hệ thống quản lý nội dung php đơn giản dựa trên mẫu thiết kế MVC. Ứng dụng này sẽ có cấu trúc cơ bản và mô-đun trang. Mô-đun trang sẽ lưu dữ liệu vào cơ sở dữ liệu MySQL và hiển thị dữ liệu trong chế độ xem
MVC là viết tắt của Model, View và Controller. Bạn có thể biết thêm thông tin về giới thiệu MVC từ Model, View và Controller trong MVC
Kiểm tra các Hướng dẫn khác,
- 6 khung API RESTful hàng đầu cho PHP
- Mô hình, Chế độ xem và Trình điều khiển trong MVC
- Laravel 8 Bố cục và Chế độ xem bằng AdminLTE3
Cấu trúc tệp của ứng dụng MVC bên dưới
Nơi các thư mục cho
- cấu hình. Thư mục này chứa tất cả các tệp cấp độ cấu hình ứng dụng [
db.php
] - bộ điều khiển. Thư mục này sẽ chứa các tệp điều khiển nơi hành động sẽ xác định cho giao diện người dùng
- css. Tất cả các tệp CSS cấp ứng dụng
- hình ảnh. Chứa tất cả hình ảnh ứng dụng
- bao gồm. Thư mục này sẽ chứa tất cả lib của bên thứ ba
- js. Thư mục này sẽ chứa các tệp JavaScript của ứng dụng
- xem. Thư mục chứa tất cả các tệp dạng xem/giao diện người dùng
- mục lục. php. Tệp gốc chính, nơi ứng dụng sẽ bắt đầu hiển thị
Có các tệp sau sẽ tạo cho ví dụ này
- mục lục. php. Tệp gốc chính, nơi ứng dụng sẽ bắt đầu hiển thị
- bộ điều khiển/BaseController. php. Đây là bộ điều khiển cơ sở chính và sẽ được mở rộng bởi tất cả các bộ điều khiển con
- bộ điều khiển/PageController. php. Tệp điều khiển này sẽ chứa tất cả các phương thức hành động cho mô-đun trang
- người mẫu/Người mẫu. php. Đây là lớp mô hình chính và chứa tất cả các phương thức phổ biến cho các mô hình
- người mẫu/Trang. php. Đây là một lớp mô hình trang và chứa các phương thức mô-đun trang
- xem/trang/chỉ mục. php. Đây là tệp chi tiết trang tệp HTML
- xem/tiêu đề. php. Đây là tệp HTML một phần cho tiêu đề bố cục và chứa thông tin tiêu đề chủ đề
Bước 1. Đầu tiên chúng ta sẽ tạo tệp
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }0. Tệp chỉ mục sẽ nhận trình xử lý
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }1 từ URL
- Page Details
trong đoạn mã trên, Chúng tôi đã tạo một liên kết Trang Chi tiết. Một lần, chúng tôi sẽ nhấp vào liên kết Người dùng, nó sẽ gọi phương thức
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }2 vào tệp bộ điều khiển
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }3
Cấu trúc tệp của bộ điều khiển ứng dụng
Hệ thống quản lý nội dung php này sẽ có thư mục bộ điều khiển. Nó chứa tất cả các tệp bộ điều khiển ứng dụng
Bước 2. Hãy tạo một tệp điều khiển cơ sở
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }4. Tệp này chứa tất cả các phương thức sẽ sử dụng trong tất cả các tệp bộ điều khiển. Tệp này giữ tất cả các phương thức điều khiển phổ biến cho ứng dụng php của bạn
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }
Bước 3. Tạo bộ điều khiển mô-đun của chúng tôi
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }5 và mở rộng bộ điều khiển cơ sở________số 8_______
Chúng tôi đã xác định phương thức chuyển đổi sẽ hiển thị phương thức dựa trên tham số hành động đã truyền. Phương thức
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }6 sẽ hiển thị tệp xem
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }7
Cấu trúc tệp mô hình ứng dụng
Hệ thống quản lý nội dung php có lớp mô hình. Nó sẽ có tất cả các lớp mô hình và sử dụng cho các hoạt động liên quan đến db
Bước 4. Tạo một lớp base_model. Lớp này chứa tất cả các phương thức phổ biến trong tất cả các lớp mô hình mô-đun
abstract Class Model { protected function insertData[$table] { } protected function saveData[$table] { } }
Chúng ta sẽ mở rộng lớp mô hình cơ sở ở trên và triển khai phương thức
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }8,
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }9 vào lớp mô hình
$obj = new Controller[]; switch[$_REQUEST['action']] { case 'pageInfo' : $obj->getPageInfo[]; break; } Class PageController Extends BaseController { public function getPageInfo[] { $this->render['page/index']; } }0 mở rộng
Bước 5. Hãy tạo tệp mô hình mô-đun của chúng tôi sẽ mở rộng trên lớp mô hình cơ sở
Class Page Extends Model { public function saveData[] { try { //write your logic } } catch [Exception $e] { return $e->getMessage[]; } } protected function insertData[] { try { //write your logic } } catch [Exception $e] { return $e->getMessage[]; } } }
Như bạn có thể thấy đoạn mã trên, tôi đã triển khai phương pháp
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }8 và
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }9
Gọi phương thức mô hình vào tệp điều khiển
Chúng tôi đã xác định các phương thức xử lý bộ điều khiển và các phương thức mô hình, hãy tích hợp và gọi vào phương thức xử lý bộ điều khiển
Liên kết được Tài trợBước 6. Hãy gọi phương thức mô hình trong tệp điều khiển
abstract Class BaseController { public function render[$file] { include '../' . $file .'.php'; } }4
public function saveData[] { $result = $this->model->saveData[]; }
Bước 7. Đã tạo một tệp
$obj = new Controller[]; switch[$_REQUEST['action']] { case 'pageInfo' : $obj->getPageInfo[]; break; } Class PageController Extends BaseController { public function getPageInfo[] { $this->render['page/index']; } }4 mới chứa cấu hình cơ sở dữ liệu
dbhost, $this->username, $this->password, $this->dbname] or die["Connection failed: " . mysqli_connect_error[]]; /* check connection */ if [mysqli_connect_errno[]] { printf["Connect failed: %s\n", mysqli_connect_error[]]; exit[]; } else { $this->conn = $con; } return $this->conn; } } ?>
Bước 8. Đã tạo một tệp
$obj = new Controller[]; switch[$_REQUEST['action']] { case 'pageInfo' : $obj->getPageInfo[]; break; } Class PageController Extends BaseController { public function getPageInfo[] { $this->render['page/index']; } }5 mới chứa biến mức cấu hình
Bước 9. Đã tạo một tệp
$obj = new Controller[]; switch[$_REQUEST['action']] { case 'pageInfo' : $obj->getPageInfo[]; break; } Class PageController Extends BaseController { public function getPageInfo[] { $this->render['page/index']; } }6 mới. Tập tin này chứa tất cả
các phương thức trợ giúp có sẵn trong tất cả các mô-đunLiên kết được Tài trợ
Bước 10. Cuối cùng, chúng ta sẽ tạo một view/header cho file view. php trong thư mục xem. Tệp này chứa chức năng liên quan đến HTML và js
Bước 9. Cuối cùng chúng ta sẽ tạo một view file view/page/index. php trong thư mục xem. Tệp này chứa chức năng liên quan đến HTML và js
Hello! Page Details page
Phần kết luận
Chúng tôi đã xác định hệ thống quản lý nội dung PHP cấp cao bằng cách sử dụng mẫu thiết kế MVC. Tôi không định nghĩa những thứ ở cấp độ cơ bản, tôi đã mô tả tổng quan cấp cao cho PHP cms
Các chuyên gia php lành nghề luôn có cơ hội tìm được dự án tốt nhất cho mình và làm việc từ xa. Nếu bạn là chuyên gia cấp trung trở lên, bạn có thể dễ dàng tìm thấy chính mình trong các công ty khởi nghiệp. Chủ sở hữu cấp tuyển dụng các lập trình viên php trực tiếp và cả với dịch vụ của các công ty 'người kết hợp hoàn hảo'. Một trong những nền tảng đáng tin cậy đã thể hiện trong lĩnh vực này – Lemon. io
Các bạn sinh viên đang tìm kiếm sự trợ giúp đáng tin cậy với các bài tập và giải pháp PHP của mình phải không?