Lưu ý lập trình
Hệ điều hành
webman hỗ trợ chạy trên cả hệ điều hành Linux và Windows. Tuy nhiên, do workerman không hỗ trợ cài đặt multi-process và daemon trên Windows, nên chỉ nên sử dụng Windows để phát triển và debug trong môi trường phát triển. Đối với môi trường sản phẩm, vui lòng sử dụng hệ điều hành Linux.
Cách khởi động
Trên hệ điều hành Linux, sử dụng lệnh php start.php start
(chế độ debug) hoặc php start.php start -d
(chế độ daemon) để khởi động.
Trên hệ điều hành Windows, chạy windows.bat
hoặc sử dụng lệnh php windows.php
để khởi động và nhấn ctrl c để dừng. Hệ điều hành Windows không hỗ trợ các lệnh stop, reload, status, reload connections.
Chạy trong bộ nhớ
webman là một framework chạy trong bộ nhớ vĩnh viễn. Thông thường, sau khi file PHP được tải vào bộ nhớ, nó sẽ được tái sử dụng và không cần đọc từ đĩa nữa (ngoại trừ các file template). Vì vậy, sau khi thay đổi mã nguồn hoặc cấu hình trong môi trường sản phẩm, cần thực hiện php start.php reload
để ứng dụng được cập nhật. Nếu thay đổi cấu hình liên quan đến process hoặc cài đặt thư viện mới từ composer, cần khởi động lại bằng php start.php restart
.
Để tiện cho việc phát triển, webman được tích hợp với một process monitor để giám sát file mã nguồn. Khi có sự thay đổi trong file mã nguồn, nó sẽ tự động thực hiện reload. Tính năng này chỉ hoạt động khi workerman chạy ở chế độ debug (không sử dụng
-d
khi khởi động). Người dùng Windows cần chạywindows.bat
hoặcphp windows.php
để sử dụng tính năng này.
Về việc xuất dữ liệu
Trong các dự án truyền thống PHP-FPM, sử dụng các hàm như echo
hoặc var_dump
để xuất dữ liệu sẽ hiển thị trực tiếp trên trang web. Tuy nhiên, trong webman, những dữ liệu này thường hiển thị trên cửa sổ terminal và không xuất hiện trên trang web (ngoại trừ việc xuất dữ liệu từ file template).
Không sử dụng lệnh exit
die
Sử dụng lệnh exit
hoặc die
sẽ dẫn đến việc tiến trình kết thúc và khởi động lại, làm cho yêu cầu hiện tại không thể được xử lý đúng cách.
Không sử dụng hàm pcntl_fork
Sử dụng pcntl_fork
để tạo một tiến trình là không được phép trong webman.