Dịch vụ

Sản phẩm

Tin tức

File Bootstrap admin

File Bootstrap admin là file dùng để tiếp nhận tất cả các yêu cầu (request) từ máy chủ (client), và nó sẽ phân tích dựa vào URL. Tức là File Bootstrap admin sẽ dựa vào URL này để xem người dùng đang truy cập vào module nào và truy cập vào action nào. Vì vậy, các bạn cần phải phân biệt được action và module để có thể làm được bài này.

Hướng dẫn phân biệt Action và Module

Trang admin của chúng ta thường có cấu trúc URL như sau: localhost/php_example/admin/index.php?m=ten_module&a=ten_action

Để giúp các bạn hiểu rõ hơn về module là gì và action là gì, tôi sẽ đưa ra các câu trả lời đơn giản và đưa ra 1 ví dụ cụ thể được các bạn được nắm vững.

 - Module là chuyên mục của 1 website, trong đó có nhiều Action với từng chức năng khác nhau. Mỗi website sẽ được chưa nhiều Module khác nhau nhằm phục vụ cho nhiều mục đích khác nha, giúp chúng ta dễ quản lý dễ dàng hơn.

 - Action là các file nằm trong Module, mỗi action như vậy sẽ phụ trách một chức năng khác nhau.

Hình ảnh để ví dụ minh họa:

Như các bạn đã thấy ở hình ảnh trên, chúng ta sẽ có các Module là các thư mục như widgets, user, common,... và các Action như 404.php, login.php, logout.php là các action nằm trong Module common.

Vậy là chúng ta đã phân biệt được Module và Action rồi phải không nào, sau đây tôi sẽ cho các bạn 1 ví dụ cụ thể để dễ hình dung hơn:

localhost/php_example/admin/index.php?m=common&a=logout

Sau khi chúng ta chạy đường dẫn đó, hệ thống sẽ truy xuất cho chúng ta file logout.php với Module là common và Action là logout.

Mục đích của việc truyền tên này là khi URL yêu cầu thì File Bootstrap admin sẽ gọi đúng tên Action và Module sẽ gọi đúng tên đó.

Viết File Bootstrap admin

Đầu tiên, các bạn hãy bổ sung đoạn code sau đây vào file admin/index.php:

 - Đầu tiên là chúng ta sẽ định nghĩa một hằng số và hằng số này sẽ bảo vệ project của chúng ta được an toàn hơn.Tôi quên nhắc cho các bạn nhớ là File Bootstrap admin trong hệ thống Website của chúng ta chính là file index.php này.

Ví dụ: Tôi muốn truy cập vào đường dẫn localhost/php_example/libs/database.php và trong file này, tôi có đặt một đoạn code (hằng định nghĩa) là define("IN_SITE", true); ở đầu thì khi truy cập vào đường dẫn localhost/php_example/libs/database.php, chúng ta vẫn sẽ vào bình thường.

Như vật thì thật sự không an toàn phải không nào?

Khi ta bỏ hằng số dưới đây vào file: localhost/php_example/libs/database.php và chạy thử file đó thì hệ thống sẽ ngăn chặn chúng ta truy cập đường dẫn đó và hiển thị thông báo The request not found:

- Tiếp theo, hệ thống sẽ lấy thông tin Action và Module của URL

- Trường hợp, nếu người dùng truy cập vào đường dẫn localhost/php_example/admin thì hệ thống sẽ mặc định Action cho URL này là admin để người dùng không cần phải nhập quá nhiều.

Ở đây, chúng ta còn thiếu 1 điểm đó là hàm kiểm tra xem người dùng đã login hay chưa, nếu rồi thì hệ thống sẽ request sang một Action khác. Phần này tôi sẽ hướng dẫn các bạn trong các bài viết sau.

- Bước tiếp theo, hệ thống sẽ tạo một đường dẫn trở đến file trong hệ thống của chúng ta, ở đây thì không có gì đặt biệt cả nên các bạn không cần quan tâm nhiều.

- Bước cuối cùng, đây cũng là bước quan trọng nhất của hệ thống.

Ở bước này, hệ thống sẽ tiến hành kiểm tra xem file Action mà chúng ta nhập có tồn tại trong hệ thống hay không, nếu có thì hệ thống sẽ xuất ra dữ liệu mà chúng ta đã làm trước, nếu file không tồn tại, tức là người dùng đang có truy cập vào một đường dẫn không tồn tại thì hệ thống sẽ tiếp hành shop phần 404 trong website ra. Tức là hệ thống sẽ gọi đến Action 404 với đường dẫn là modules/common/404.php.

Đến đây thì các bạn cơ bản đã hoàn thành được File Bootstrap admin để xử lý các request của người dùng, các bạn hãy chạy thử một số Action xem có được đúng như kết quả không nhé.

Tổng kết bài viết: File Bootstrap admin là phần tương đối khó trong PHP và cũng khá là phức tạp nên sẽ hơi khó khăn cho một số bạn mới vào nghề. Nếu các bạn gặp lỗi ở phần này, hãy liên hệ ngay cho các chuyên gia hoặc sư phụ của mình để được hướng dẫn cụ thể, vì nếu bạn tự mày mò thì sẽ mất khá nhiều thời gian đấy.