แนวทางการพัฒนา
โฟลเดอร์แอปพลิเคชัน
โฟลเดอร์แอปพลิเคชันสามารถอยู่ที่ใดก็ได้
ไฟล์เริ่มต้น
เช่นเดียวกับแอปพลิเคชัน PHP ที่ใช้ nginx+PHP-FPM แอปพลิเคชันใน Workerman ก็ต้องการไฟล์เริ่มต้น ไฟล์เริ่มต้นไม่มีข้อกำหนดชื่อ และไฟล์เริ่มต้นนี้จะทำงานในรูปแบบ PHP Cli
ในไฟล์เริ่มต้น จะมีโค้ดที่เกี่ยวข้องกับการสร้างโพรเซสการติดตาม เช่น รหัสข้อมูลในรูปแบบ Workerman ด้านล่างนี้
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
-
คลาสใช้การตั้งชื่อแบบ CamelCase โดยอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ ชื่อไฟล์คลาสต้องตรงกับชื่อคลาสภายใน เพื่อให้สามารถทำการโหลดอัตโนมัติได้ เช่น:
class UserInfo { ... -
ใช้ namespace ชื่อ namespace จะต้องตรงกับเส้นทางในโฟลเดอร์ และใช้โฟลเดอร์รากของโปรเจคเป็นฐาน
ตัวอย่างโปรเจค MyApp/ ไฟล์คลาส MyApp/MyClass.php เนื่องจากอยู่ในโฟลเดอร์รากของโปรเจค จึงไม่ต้องระบุ namespace ไฟล์คลาส MyApp/Protocols/MyProtocol.php เนื่องจาก MyProtocol.php อยู่ในโฟลเดอร์ Protocols ของโปรเจค MyApp จึงต้องเพิ่ม namespace namespace Protocols; ดังนี้:
namespace Protocols;
class MyProtocol
{
....
-
ฟังก์ชันและชื่อตัวแปรใช้รูปแบบตัวพิมพ์เล็กและขีดล่าง เช่น
$connection_list = array(); function get_connection_list() { .... -
สมาชิกของคลาสและเมธอดของคลาสใช้รูปแบบ CamelCase โดยอักษรตัวแรกเป็นตัวพิมพ์เล็ก เช่น:
public $connectionList; public function getConnectionList(); -
ฟังก์ชันและพารามิเตอร์ของคลาสใช้รูปแบบตัวพิมพ์เล็กและขีดล่าง
function get_connection_list($one_param, $tow_param) { ....