cuốn sách gpt4 ai đã làm

Kiến trúc PHP: Làm cách nào để thực hiện điều đó?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-10-31 23:12:10 26 4
mua khóa gpt4 Nike

Tôi cần một số trợ giúp để hiểu hoạt động bên trong của PHP.

Hãy nhớ rằng, trước đây, chúng ta thường viết các quy trình TSR (Chấm dứt và lưu trú) (thời kỳ tiền Windows)? Khi chương trình được thực thi, nó vẫn còn trong bộ nhớ và có thể được thực thi lại thông qua một số phím nóng (tổ hợp phím alt hoặc ctrl-).

Tôi muốn sử dụng khái niệm tương tự trong máy chủ/ứng dụng web. Ví dụ: tôi có common_functions.php, chứa các chức năng chung cho tất cả các ứng dụng web chạy trên máy chủ apache/php này (chẳng hạn như Tạo_City_Combo(), Check_Permission() hoặc Tạo_User_Permission_list(), v.v.).

Trong bất kỳ tệp php của mô-đun hoặc ứng dụng nào tôi có thể viết:
require_once(common_functions.php);

Nó sẽ bao gồm tệp công khai đó trong tất cả các mô-đun và ứng dụng và hoạt động tốt.

Câu hỏi của tôi là: php xử lý nội bộ này như thế nào?
Giả sử tôi có: hai ứng dụng AppOne và AppTwo.
AppOne có hai tùy chọn menu AppOne_Menu_PQR và AppOne_Menu_XYZ
AppTwo có hai tùy chọn menu AppTwo_Menu_ABC và APPTwo_Menu_DEF

Tất cả bốn mục menu đều gọi các hàm trong common_functions.php {chẳng hạn như Tạo_City_Combo(), Check_Permission() hoặc Tạo_User_Permission_list()}

Bây giờ hãy xem xét tình huống sau: A) Người dùng XXX đăng nhập và nhấp vào AppOne_Menu_PQR từ bảng điều khiển được cá nhân hóa của mình, sau đó họ làm theo tất cả các màn hình và hướng dẫn. Đây là một chuỗi gồm 8-10 yêu cầu trang (màn hình) và có tính tương tác. Sau đó, người dùng XXX nhấp vào AppTwo_Menu_DEF từ bảng điều khiển được cá nhân hóa của mình và một lần nữa họ làm theo tất cả các màn hình và hướng dẫn (khoảng 8-10 trang/màn hình) như trước. Sau đó người dùng XXX đăng xuất.

B) Người dùng XXX đăng nhập và thực hiện bất kỳ hành động nào được đề cập trong trường hợp A. Đồng thời, người dùng YYY cũng đăng nhập (từ một máy khách khác) và thực hiện các thao tác tương tự như đã đề cập trong kịch bản A.

Đối với kịch bản A, đó là cùng một phiên. Đối với kịch bản B, có hai phiên khác nhau.

Giả sử rằng tất cả các tùy chọn menu gọi Tạo_User_Permission_list() và Tạo_Footer() hoặc nhiều tùy chọn menu gọi Tạo_City_Combo().

Vậy PHP thực thi/bao gồm common_functions.php bao nhiêu lần trong mỗi yêu cầu trang? Mỗi phiên? Hoặc mỗi khi PHP khởi động/tắt? Tôi hiểu rằng common_functions.php sẽ được thực thi một lần trên mỗi yêu cầu/chu kỳ/tải/màn hình trang, phải không? Về cơ bản một lần cho mỗi lần tương tác.

Hãy nhớ rằng các hàm như Tạo_City_Combo() hoặc Tạo_Footer() sẽ tạo ra cùng một kết quả hoặc thực hiện cùng một việc bất kể ai gọi nó hoặc khi nó được gọi.

Tôi muốn giới hạn điều này một lần cho mỗi lần khởi động và tắt ứng dụng.

Đây chỉ là những ví dụ. Vấn đề thực tế của tôi phức tạp hơn nhiều. Trong ứng dụng của mình, tôi chỉ muốn gọi thủ tục Application_Startup() một lần, điều này sẽ tạo ra môi trường lý tưởng (như tất cả các cấu trúc dữ liệu tra cứu và tham chiếu, dữ liệu chỉ đọc, ma trận bảo mật, tùy chọn menu, logic thực thi nghiệp vụ theo ngữ cảnh, v.v. . . .). Tất cả các yêu cầu tiếp theo đến máy chủ không cần tốn thời gian hay tài nguyên để tạo môi trường mà có thể tham chiếu ngay đến "môi trường đã được tạo".

Điều này có thể thực hiện được trong PHP không? Làm sao? Bạn có thể chỉ cho tôi một số địa điểm hoặc sách giải thích hoạt động bên trong của PHP không?

Cảm ơn trước.

câu trả lời hay nhất

PHP xử lý từng yêu cầu HTTP trong một khung thực thi hoàn toàn độc lập - không có quy trình chạy liên tục nào để phục vụ tất cả các yêu cầu. (Máy chủ web của bạn đang chạy, nhưng mỗi khi một trang PHP được tải, một phiên bản riêng của trình thông dịch PHP sẽ được gọi.)

Nếu việc tạo vùng liên tục cần thiết mất nhiều thời gian, bạn có thể cân nhắc việc lưu đầu ra của các tập lệnh này vào bộ nhớ đệm trên đĩa và tải phiên bản đã lưu trong bộ nhớ đệm trước nếu nó có sẵn (và không cũ).

Về kiến ​​trúc PHP: Làm cách nào để thực hiện điều đó?, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/2346232/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress