開發規範

應用程式目錄

應用程式目錄可以放到任意位置

入口檔案

和 nginx+PHP-FPM 下的 PHP 應用程式一樣,Workerman 中的應用程式也需要一個入口檔案,入口檔案名沒有要求,並且這個入口檔案是以 PHP CLI 方式運行的。

入口檔案中是創建監聽進程相關的程式碼,例如下面的基於 Worker 開發的程式碼片段

test.php

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// 創建一個 Worker 監聽 2345 端口,使用 http 協議通訊
$http_worker = new Worker("http://0.0.0.0:2345");

// 啟動 4 個進程對外提供服務
$http_worker->count = 4;

// 接收到瀏覽器發送的資料時回覆 hello world 給瀏覽器
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
    // 向瀏覽器發送 hello world
    $connection->send('hello world');
};

Worker::runAll();

Workerman 中的程式碼規範

1、類採用首字母大寫的駝峰式命名,類檔案名稱必須與檔案內部類名相同,以便自動加載。例如:

class UserInfo
{
...

2、使用命名空間,命名空間名字與目錄路徑對應,並以開發者的專案根目錄為基準。

例如專案 MyApp/,類檔案 MyApp/MyClass.php 因為在專案根目錄,所以命名空間省略。類檔案 MyApp/Protocols/MyProtocol.php 因為 MyProtocol.php 在 MyApp 專案的 Protocols 目錄下,所以要加上命名空間 namespace Protocols;,如下:

namespace Protocols;
class MyProtocol
{
....

3、普通函數及變數名採用小寫加下劃線方式 例如

$connection_list = array();
function get_connection_list()
{
....

4、類成員及類的方法採用首字母小寫的駝峰形式 例如:

public $connectionList;
public function getConnectionList();

5、函數及類的參數採用小寫加下劃線方式

function get_connection_list($one_param, $tow_param)
{
....