PHP bao gồm lỗ hổng: từ lý thuyết đến thực hành

Trong hướng dẫn này, bạn sẽ học cách xây dựng hệ thống đơn giản trên kiến ​​trúc MVC (Model-View-Controller, Model-Display-Controller) trên PHP 5.1 sử dụng các khả năng của thư viện SPL (Thư viện PHP tiêu chuẩn, Thư viện chuẩn PHP).

Giới thiệu

Chào mừng đến với lần đầu tiên hướng dẫn đầy đủ cho PHP 5. Bạn sẽ cần PHP 5.1 có cài đặt thư viện SPL, vì chúng tôi sẽ sử dụng một số trong số đó. cơ hội mới nhất PHP5.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách xây dựng một hệ thống MVC đơn giản (kiến trúc MVC là mẫu thiết kế phổ biến nhất cho các ứng dụng web lớn). Tôi sẽ hướng dẫn bạn tất cả các bước từ đầu đến cuối để tạo một hệ thống MVC hoàn chỉnh.

Một điểm vào

Một trong những điều quan trọng về MVC là có một điểm truy cập vào ứng dụng thay vì một loạt tệp PHP thực hiện những việc như thế này:

Chúng tôi sẽ có một tệp xử lý tất cả các yêu cầu. Điều này có nghĩa là chúng ta sẽ không phải vật lộn với việc kết nối Global.php mỗi khi chúng ta cần tạo trang mới. "Điểm vào duy nhất" này sẽ được gọi là index.php và tại khoảnh khắc này sẽ như thế này:

Như bạn có thể thấy, tập lệnh này chưa làm gì cả, nhưng hãy đợi một chút.

Để hướng mọi thắc mắc tới trang chủ, chúng tôi sẽ sử dụng mod_rewrite và đặt lệnh RewriteRule trong .htaccess. Hãy dán đoạn mã sau vào tệp .htaccess và lưu nó vào cùng thư mục với index.php:

RewriteEngine trên RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule ^(.*)$ index.php?route=$1

Trước tiên, chúng tôi kiểm tra xem tệp được yêu cầu có tồn tại hay không bằng cách sử dụng lệnh RewriteCond và nếu không, chúng tôi sẽ chuyển hướng yêu cầu đến index.php. Việc kiểm tra sự tồn tại của tệp này là cần thiết, vì nếu không, index.php sẽ cố gắng xử lý tất cả các yêu cầu đến trang web, bao gồm cả yêu cầu về hình ảnh. Và đây chính xác là những gì chúng ta không cần.

Nếu bạn không có khả năng sử dụng .htaccess hoặc mod_rewrite thì bạn sẽ phải xử lý thủ công tất cả các yêu cầu tới index.php. Nói cách khác, tất cả các liên kết sẽ phải có dạng “index.php?route=[query-goes-here]”. Ví dụ: "index.php?route=chat/index".

Bây giờ tất cả các yêu cầu đều đi qua một điểm đầu vào, chúng ta có thể bắt đầu viết tập lệnh index.php. Việc đầu tiên chúng ta cần làm là khởi tạo hệ thống. Hãy tạo một thư mục bao gồm và trong đó có tệp startup.php (nó sẽ là tệp khởi tạo của chúng tôi). Hãy chèn đoạn mã sau vào index.php: