Workerman-Statistics 项目教程
1. 项目目录结构及介绍
workerman-statistics/
├── Applications/
│ └── Statistics/
│ ├── Config/
│ │ └── Db.php
│ ├── Lib/
│ │ └── Statistic.php
│ ├── start_worker.php
│ └── start_web.php
├── Bootstrap/
│ ├── StatisticProvider.php
│ └── StatisticWorker.php
├── Client/
│ └── StatisticClient.php
├── README.md
└── composer.json
目录结构介绍
-
Applications/Statistics/: 包含统计服务的核心代码。
- Config/: 存放配置文件,如数据库配置。
- Lib/: 存放统计服务的核心逻辑代码。
- start_worker.php: 启动统计服务的Worker进程。
- start_web.php: 启动Web服务。
-
Bootstrap/: 包含统计服务的启动和配置类。
- StatisticProvider.php: 统计服务的提供者类。
- StatisticWorker.php: 统计服务的Worker类。
-
Client/: 包含统计服务的客户端代码。
- StatisticClient.php: 客户端调用统计服务的接口。
-
README.md: 项目的基本介绍和使用说明。
-
composer.json: 项目的依赖管理文件。
2. 项目启动文件介绍
start_worker.php
<?php
require_once __DIR__ . '/loader.php';
use Bootstrap\StatisticProvider;
use Bootstrap\StatisticWorker;
use \Workerman\Worker;
use \Workerman\WebServer;
// StatisticWorker
$statistic_worker = new StatisticWorker("Statistic://0.0.0.0:55656");
$statistic_worker->transport = 'udp';
$statistic_worker->name = 'StatisticWorker';
// 如果不是在根目录启动,则运行runAll方法
if (defined('GLOBAL_START')) {
Worker::runAll();
}
启动文件介绍
- require_once DIR . '/loader.php';: 引入项目的自动加载文件。
- use Bootstrap\StatisticProvider;: 引入统计服务的提供者类。
- use Bootstrap\StatisticWorker;: 引入统计服务的Worker类。
- $statistic_worker = new StatisticWorker("Statistic://0.0.0.0:55656");: 创建统计服务的Worker实例,监听0.0.0.0:55656端口。
- $statistic_worker->transport = 'udp';: 设置传输协议为UDP。
- $statistic_worker->name = 'StatisticWorker';: 设置Worker的名称为StatisticWorker。
- if (defined('GLOBAL_START')) { Worker::runAll(); }: 如果不是在根目录启动,则运行runAll方法启动所有Worker。
3. 项目配置文件介绍
Config/Db.php
<?php
return [
'host' => '127.0.0.1',
'port' => '3306',
'user' => 'root',
'password' => '123456',
'dbname' => 'statistics',
'charset' => 'utf8',
];
配置文件介绍
- host: 数据库主机地址。
- port: 数据库端口。
- user: 数据库用户名。
- password: 数据库密码。
- dbname: 数据库名称。
- charset: 数据库字符集。
这些配置项用于连接数据库,存储和查询统计数据。