avnovoselov / small
一些小助手
0.2.4.4
2020-01-30 07:46 UTC
Requires
- php: >=7
- ext-mbstring: *
Requires (Dev)
README
一些小助手
安装
composer require avnovoselov/small
API
- Arguments - 处理脚本参数的类
- Daemon - 抽象的守护进程类
- DaemonInterface - 守护进程接口
- Path - 处理路径
- Script - 抽象的脚本类
- Terminal - 处理终端输出的类
已过时 ↓
- Daemon
- InterfaceDaemon::process() - 守护进程的主体
- InterfaceDaemon::skip() - 跳过迭代的条件
- InterfaceDaemon::environment() - 环境配置
- AbstractDaemon::arguments() - 参数配置
- AbstractDaemon::$arguments - 参数列表
- AbstractDaemon::run() - 启动守护进程
- AbstractDaemon::__construct() - 构造函数
- Arguments
Daemon
InterfaceDaemon 和 AbstractDaemon
要创建新的守护进程,应扩展抽象类 AbstractDaemon 并实现接口 InterfaceDaemon。
InterfaceDaemon::process() - 在每个迭代中执行的方法(守护进程的主体)
Counter.php
class Counter extends \Small\AbstractDaemon { private $count = 0; public function process() { ++$this->count; echo PHP_EOL . " iteration run at: {$this->lastRunDate}"; echo PHP_EOL . " iteration number: {$this->count}"; } }
如果需要添加执行迭代的条件,应实现方法 InterfaceDaemon::skip
InterfaceDaemon::skip(): bool - 检查是否满足执行迭代条件的方法。例如,连接到数据库。
class Counter extends \Small\AbstractDaemon { ... public function skip(): bool { return time() % 2; } }
在上面的例子中,方法 Counter::skip 跳过在奇数秒启动的迭代
InterfaceDaemon::environment(): InterfaceDaemon - 确定环境配置的方法(数据库连接设置,错误显示等)。
class Counter extends \Small\AbstractDaemon { ... public function environment(): \Small\InterfaceDaemon { ini_set('display_errors', 0); ini_set('display_startup_errors', 0); error_reporting(0); return $this; } }
AbstractDaemon::arguments(array $defaultArguments = []): \Small\InterfaceDaemon - 确定守护进程调用参数并设置默认值的方法。
daemon/counter.php
$counterDaemon = new Counter('Counter'); $counterDaemon ->arguments(['count' => 0]) ->run();
/> php daemon/counter.php --count=3
对于守护进程 $counterDaemon,可用参数 --count,示例中计数将从此值开始,参数 --count 的默认值为 0。
AbstractDaemon::$arguments - \Small\Arguments 类的实例,提供对守护进程启动参数的访问。
class Counter extends \Small\AbstractDaemon { public function environment(): \Small\InterfaceDaemon { $this->count = $this->arguments->get('count'); ini_set('display_errors', 0); ini_set('display_startup_errors', 0); error_reporting(0); return $this; } }
AbstractDaemon::run(): void - 启动守护进程
AbstractDaemon::__construct(string $name, int $sleep = 1): AbstractDaemon - 守护进程的构造函数
$name- 守护进程的名称$sleep- 迭代间的延迟(秒)