Normas de desenvolvimento

Diretório do aplicativo

O diretório do aplicativo pode ser colocado em qualquer lugar.

Arquivo de entrada

Assim como os aplicativos PHP sob nginx+PHP-FPM, o aplicativo no Workerman também requer um arquivo de entrada. Não há exigências para o nome do arquivo de entrada, e ele é executado no modo PHP CLI.

O arquivo de entrada contém o código relacionado à criação de processos de escuta, como no seguinte trecho de código baseado em Worker.

test.php

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

// Cria um Worker escutando na porta 2345, utilizando o protocolo http
$http_worker = new Worker("http://0.0.0.0:2345");

// Inicia 4 processos para fornecer serviços
$http_worker->count = 4;

// Ao receber dados do navegador, responde com hello world
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
    // Envia hello world para o navegador
    $connection->send('hello world');
};

Worker::runAll();

Normas de codificação no Workerman

  1. As classes usam a convenção de nomenclatura CamelCase com a primeira letra maiúscula. O nome do arquivo da classe deve ser o mesmo que o nome da classe interna, para facilitar a autoload. Por exemplo:

    class UserInfo
    {
    ...
  2. Utilize namespaces. O nome do namespace deve corresponder ao caminho do diretório, tomando como base o diretório raiz do projeto do desenvolvedor.

Por exemplo, para o projeto MyApp/, o arquivo de classe MyApp/MyClass.php não requer namespace, pois está na raiz do projeto. O arquivo de classe MyApp/Protocols/MyProtocol.php, que está no diretório Protocols do projeto MyApp, deve incluir o namespace namespace Protocols;, conforme abaixo:

namespace Protocols;
class MyProtocol
{
....
  1. Nomes de funções e variáveis devem usar letras minúsculas com underscores, como por exemplo:

    $connection_list = array();
    function get_connection_list()
    {
    ....
  2. Membros da classe e métodos da classe devem utilizar a forma CamelCase com a primeira letra minúscula, como por exemplo:

    public $connectionList;
    public function getConnectionList();
  3. Parâmetros de funções e classes devem usar letras minúsculas com underscores:

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