開(kāi)發(fā)規(guī)范
應(yīng)用程序目錄
應(yīng)用程序目錄可以放到任意位置
入口文件
和nginx+PHP-FPM下的PHP應(yīng)用程序一樣,Workerman中的應(yīng)用程序也需要一個(gè)入口文件,入口文件名沒(méi)有要求,并且這個(gè)入口文件是以PHP Cli方式運(yùn)行的。
入口文件中是創(chuàng)建監(jiān)聽(tīng)進(jìn)程相關(guān)的代碼,例如下面的基于Worker開(kāi)發(fā)的代碼片段
test.php
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// 創(chuàng)建一個(gè)Worker監(jiān)聽(tīng)2345端口,使用http協(xié)議通訊
$http_worker = new Worker("http://0.0.0.0:2345");
// 啟動(dòng)4個(gè)進(jìn)程對(duì)外提供服務(wù)
$http_worker->count = 4;
// 接收到瀏覽器發(fā)送的數(shù)據(jù)時(shí)回復(fù)hello world給瀏覽器
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
// 向?yàn)g覽器發(fā)送hello world
$connection->send('hello world');
};
Worker::runAll();
Workerman中的代碼規(guī)范
1、類采用首字母大寫(xiě)的駝峰式命名,類文件名稱必須與文件內(nèi)部類名相同,以便自動(dòng)加載。例如:
class UserInfo
{
...
2、使用命名空間,命名空間名字與目錄路徑對(duì)應(yīng),并以開(kāi)發(fā)者的項(xiàng)目根目錄為基準(zhǔn)。
例如項(xiàng)目MyApp/,類文件MyApp/MyClass.php因?yàn)樵陧?xiàng)目根目錄,所以命名空間省略。類文件MyApp/Protocols/MyProtocol.php因?yàn)镸yProtocol.php在MyApp項(xiàng)目的Protocols目錄下,所以要加上命名空間 namespace Protocols;
,如下:
namespace Protocols;
class MyProtocol
{
....
3、普通函數(shù)及變量名采用小寫(xiě)加下劃線方式 例如
$connection_list = array();
function get_connection_list()
{
....
4、類成員及類的方法采用首字母小寫(xiě)的駝峰形式 例如:
public $connectionList;
public function getConnectionList();
5、函數(shù)及類的參數(shù)采用小寫(xiě)加下劃線方式
function get_connection_list($one_param, $tow_param)
{
....