Những điều cần biết khi lập trình
Hệ điều hành
webman hỗ trợ chạy trên cả hệ thống linux và windows. Tuy nhiên, do workerman không hỗ trợ thiết lập đa tiến trình và tiến trình quản lý (daemon) trên windows, nên hệ thống windows chỉ được khuyến nghị để sử dụng cho môi trường phát triển và gỡ lỗi. Đối với môi trường chính thức, hãy sử dụng hệ thống linux.
Phương thức khởi động
Hệ thống linux
php start.php start
Lệnh này là chế độ gỡ lỗi, thường sử dụng trong quá trình phát triển, tiến trình monitor sẽ tự động kiểm tra và reload khi tệp được cập nhật, dữ liệu sẽ được hiển thị trên terminal, khi terminal đóng lại thì webman cũng sẽ tự động đóng.
php start.php start -d
Lệnh này là chế độ tiến trình quản lý, sử dụng trong môi trường chính thức, khi đóng terminal, webman sẽ tiếp tục chạy, dữ liệu sẽ không hiển thị trên terminal.
Cần thực hiện php start.php reload
hoặc php start.php restart -d
để cập nhật mã nguồn.
Hệ thống windows
Thực hiện windows.bat
hoặc sử dụng lệnh php windows.php
để khởi động, bấm ctrl c để dừng.
Hệ thống windows không hỗ trợ các lệnh như stop, reload, status, reload connections.
Windows không hỗ trợ chế độ tiến trình quản lý.
Bộ nhớ thường trú
webman là một framework thường trú trong bộ nhớ. Thông thường, sau khi tệp php được tải lên, nó sẽ thường trú trong bộ nhớ dưới dạng opcode và không đọc lại từ đĩa (trừ các tệp mẫu).
Vì vậy, sau khi thay đổi mã nguồn hoặc cấu hình trong môi trường chính, cần phải thực hiện php start.php reload
để có hiệu lực.
Nếu có thay đổi liên quan đến cấu hình tiến trình hoặc cài đặt gói composer mới, cần khởi động lại bằng php start.php restart
.
Để thuận tiện cho việc phát triển, webman tự cung cấp một tiến trình monitor tùy chỉnh để theo dõi việc cập nhật tệp mã nguồn, mỗi khi có tệp mã nguồn được cập nhật sẽ tự động thực hiện reload.
Chức năng này chỉ được kích hoạt khi workerman chạy ở chế độ gỡ lỗi (không thêm-d
khi khởi động). Người dùng windows cần thực hiệnwindows.bat
hoặcphp windows.php
để kích hoạt.
Về câu lệnh xuất
Trong các dự án truyền thống php-fpm, việc sử dụng echo
, var_dump
và các hàm khác để xuất dữ liệu sẽ hiển thị trực tiếp trên trang, trong khi trong quá trình phát triển webman (khi khởi động ở chế độ gỡ lỗi), những xuất này thường hiển thị trên terminal và không hiển thị trên trang (trừ xuất trong các tệp mẫu).
Đừng thực hiện các câu lệnh exit
, die
Thực hiện die hoặc exit sẽ khiến tiến trình thoát ra và khởi động lại, làm cho yêu cầu hiện tại không thể được đáp ứng chính xác.
Đừng thực hiện hàm pcntl_fork
pcntl_fork
tạo ra một tiến trình của người dùng, điều này là không được phép trong webman.
Cài đặt thành phần composer
Các thành phần được cài đặt bằng composer require xxx/xxx
cần được khởi động lại để có hiệu lực.