Quy định phát triển
Thư mục ứng dụng
Thư mục ứng dụng có thể đặt ở bất kỳ vị trí nào.
Tệp vào
Giống như ứng dụng PHP dưới nginx+PHP-FPM, ứng dụng trong Workerman cũng cần một tệp vào, tên tệp vào không có yêu cầu cụ thể, và tệp vào này được chạy bằng cách sử dụng PHP CLI.
Tệp vào chứa mã liên quan đến việc tạo tiến trình lắng nghe, ví dụ dưới đây là đoạn mã dựa trên Worker.
test.php
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// Tạo một Worker lắng nghe cổng 2345, sử dụng giao thức http để truyền thông
$http_worker = new Worker("http://0.0.0.0:2345");
// Khởi động 4 tiến trình để cung cấp dịch vụ
$http_worker->count = 4;
// Khi nhận được dữ liệu từ trình duyệt, gửi lại hello world cho trình duyệt
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
// Gửi hello world đến trình duyệt
$connection->send('hello world');
};
Worker::runAll();
Quy tắc mã trong Workerman
-
Tên lớp sử dụng kiểu đặt tên camel case với chữ cái đầu tiên viết hoa, tên tệp lớp phải trùng với tên lớp bên trong để hỗ trợ tự động tải. Ví dụ:
class UserInfo { ... -
Sử dụng không gian tên, tên không gian tên tương ứng với đường dẫn thư mục và lấy thư mục gốc của dự án của nhà phát triển làm cơ sở.
Ví dụ dự án MyApp/, tệp lớp MyApp/MyClass.php vì nằm trong thư mục gốc của dự án nên không gian tên được bỏ qua. Tệp lớp MyApp/Protocols/MyProtocol.php vì MyProtocol.php nằm trong thư mục Protocols của dự án MyApp nên cần thêm không gian tên namespace Protocols; như sau:
namespace Protocols;
class MyProtocol
{
....
-
Tên hàm và biến thông thường sử dụng chữ thường kèm dấu gạch dưới, ví dụ
$connection_list = array(); function get_connection_list() { .... -
Thuộc tính và phương thức của lớp sử dụng kiểu đặt tên camel case với chữ cái đầu tiên viết thường, ví dụ:
public $connectionList; public function getConnectionList(); -
Tham số của hàm và lớp sử dụng chữ thường kèm dấu gạch dưới
function get_connection_list($one_param, $tow_param) { ....