Khi bạn làm việc với ứng dụng, bạn sẽ cần thực hiện các thay đổi và sau đó mới đóng lại ứng dụng. Đây sẽ gọi là một phiên hay session trong PHP. Session sẽ cho máy tính biết khi nào bạn bắt đầu ứng dụng và khi nào bạn kết thúc ứng dụng. Tuy vậy, khi hoạt động trên internet, máy chủ web sẽ không biết bạn là ai hoặc bạn làm gì vì địa chỉ http không duy trì trạng thái. Show Khái niệm session trong PHP Session trong PHP sẽ giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng sử dụng trên nhiều trang (ví dụ: tên người dùng, màu yêu thích,...) Theo mặc định các biến của session kéo dài cho đến khi người dùng đóng trình duyệt. Vì vậy, có thể kết luận các session trong PHP chứa thông tin về người dùng và có sẵn cho tất cả các trang trong ứng dụng. Quy trình hoạt động của một session trong PHPKhi một session trong PHP bắt đầu, những điều sau đây sẽ xảy ra:
Khi một tập lệnh PHP muốn truy xuất giá trị từ một biến session, PHP sẽ tự động lấy chuỗi định danh session duy nhất từ cookie PHP SESSID và sau đó tìm tệp mang tên đó trong thư mục tạm thời của nó và việc xác thực có thể được thực hiện bằng cách so sánh cả hai giá trị. Session sẽ kết thúc khi người dùng tắt trình duyệt hoặc rời khỏi trang, máy chủ sẽ kết thúc session sau một khoảng thời gian định trước, thường là sau 30’. >>> Đọc thêm: PHP XML: Tạo, phân tích cú pháp ví dụ trong PHP XML Bắt đầu một session trong PHPMột session trong PHP có thể dễ dàng bắt đầu bằng cách gọi hàm session_start (), trước tiên hàm này kiểm tra xem một phiên đã được bắt đầu chưa và nếu chưa có phiên nào được bắt đầu thì nó sẽ bắt đầu một phiên. Bạn nên đặt lệnh gọi tới session_start () ở đầu trang. Các biến phiên được lưu lữ trong các mảng liên kết được gọi là $_SESSION []. Những biến này có thể được truy cập trong thời gian của một session. Ví dụ dưới đây bắt đầu một session, sau đó đăng ký một biến được gọi là bộ đếm (counter) được tăng lên mỗi khi trang được truy cập trong phiên. Tận dụng hàm isset() để kiểm tra xem liệu biến session đã được set hay chưa. Đưa biến dưới đây vào file test.php và tải lại file nhiều lần cho tới khi nhận được kết quả như dưới đây:
Kết quả nhận được như sau:
>>> Đọc thêm: Toán tử bậc ba trong PHP - Tìm hiểu về toán tử bậc 3 trong PHP Hủy session trong PHPMột session trong PHP có thể được hủy bằng cách sử dụng hàm session_destroy(). Hàm này không cần bất kỳ thám số nào và một lệnh gọi có thể hủy tất cả các biến session. Dưới đây là ví dụ hủy đặt biến duy nhất: Dưới đây là lệnh hủy tất cả các biến session Cách bật Auto Session trong PHPBạn không cần gọi hàm start_session () để bắt đầu một phiên khi người dùng truy cập trang web của bạn nếu bạn có thể đặt biến session.auto_start thành 1 trong tệp php.ini . Session không sử dụng cookieCó những trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác là gửi ID session đến phiên trình duyệt. Ngoài ra, bạn có thể sử dụng hằng số SID được định nghĩa nếu phiên bắt đầu. Nếu người dùng không gửi một phiên cookie hợp lệ, nó sẽ có dạng session_name=session_id. Nếu không nó sẽ mở rộng một chuỗi đơn. Thêm vào đó, bạn có thể nhúng nó vào URL vô điều kiện. Ví dụ sau minh họa cách đăng ký một biến và cách liên kết chính xác đến một trang khác bằng SID.
Kết quả:
Kết luận: Trên đây là khái niệm và cách sử dụng session trong PHP. Bên cạnh các thành phần khác, Session trong PHP cũng là yếu tố mà lập trình viên cần để tâm trong quá trình làm việc với PHP. Tìm hiểu thêm về PHP và các ngôn ngữ lập trình khác qua các khóa học lập trình tại Viện công nghệ thông tin T3H. Tạo một thư mục /src và một tệp composer.json trong thư trên cùng với một phần phụ thuộc: thư viện DotEnv, cho phép lưu trữ thông tin trong tệp .env.
Trình tải tự động PSR-4 sẽ tự động tìm kiếm các lớp PHP trong thư mục /src. Đây là lúc cài đặt các phụ thuộc:
Nó sẽ tạo một thư mục /vendor và phần phụ thuộc DotEnv sẽ được cài đặt (autoloader sẽ tải các lớp từ /src mà không cần hàm gọi include()). Tạo tệp .gitignore cho dự án của bạn với hai dòng trong đó, vì vậy thư mục /vendor và tệp cục bộ .env sẽ bị bỏ qua:
Tiếp theo, tạo một tệp .env.example cho các biến Secret (Bí mật):
Và một tệp .env nơi bạn sẽ điền thông tin chi tiết thực của mình sau này (nó sẽ bị Git bỏ qua nên sẽ không kết thúc trong kho lưu trữ của bạn). Tạo một tệp tải start.php các biến môi trường.
>>> Đọc thêm: Date time trong PHP - Cách xử lý date time trong PHP nhanh nhất Định hình Cơ sở dữ liệu cho REST API trong PHPChúng ta sẽ sử dụng MySQL để cấp nguồn cho API đơn giản của chúng tôi. Tạo cơ sở dữ liệu và người dùng mới cho ứng dụng của bạn:
REST API sẽ chứa bài viết cho chúng ta trong ứng dụng Blog, với các lĩnh vực sau: id, title, body, author, author_picture, created_at. Nó cho phép người dùng đăng blog của họ trên ứng dụng Blog của chúng ta. Tạo bảng cơ sở dữ liệu trong MySQL.
Thêm các biến kết nối cơ sở dữ liệu vào tệp .env của bạn :
Tạo một lớp để giữ database và thêm phần khởi tạo kết nối vào tệ start.php
>>> Đọc thêm: Hằng số trong PHP - Tìm hiểu nhanh về hằng số trong PHP Thêm lớp cho Post Table và triển khai REST API trong PHPCó nhiều cách để tương tác với cơ sở dữ liệu trong ngữ cảnh hướng đối tượng, nhưng chúng ta sẽ tìm hiểu một phương pháp đơn giản nhất, nơi bạn sẽ triển khai các phương thức để trả về tất cả các bài đăng, trả về một bài đăng cụ thể và thêm / cập nhật / xóa bài đăng. Ngoài ra, các điểm cuối API sẽ được xử lý bởi giao diện người dùng của chúng ta tại api/index.php. REST API với các điểm cuối như sau: API CRUD Mô tả GET /posts READ Nhận tất cả các bài viết từ bảng post GET /post/{id} READ Nhận một bài đăng từ bảng post POST /post CREATE Tạo bài đăng và chèn vào bảng Post PUT /post/{id} UPDATE Cập nhât bài đăng trong bảng post DELETE /post/{id} DELATE xóa bài đăng khỏi bảng post
Kiểm tra các điểm cuối API bằng Postman >>> Tham khảo: Khóa học lập trình PHP Kết luận: Bài viết trên đã giới thiệu tới bạn cách xây dựng một REST API trong PHP. Sau khi xây dựng xong ứng dụng này, đừng quên bảo mật API bằng cách xác thực và ủy quyền bạn nhé. Tìm hiểu thêm về PHP và các ngôn ngữ lập trình khác qua các khóa học lập trình tại Viện công nghệ thông tin T3H.ngay hôm nay để nhận ưu đãi nhé! |