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ện windows.bat hoặc php 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.