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
- 迭代间的延迟(秒)