[PHP] Workerman中的注册树模式
程序员文章站
2022-05-31 22:05:59
注册树模式是把对象挂到一个类的属性数组里,下次直接在这个数组里面取,保持全局唯一,一般在项目入口初始化的时候有用到。在workerman中一开始的就是个注册树模式的运用,下面是对他的模拟 在Worker的构造函数中,把当前new的对象挂到了Worker类的静态变量属性数组里,在下次使用的时候直接在那 ......
注册树模式是把对象挂到一个类的属性数组里,下次直接在这个数组里面取,保持全局唯一,一般在项目入口初始化的时候有用到。在workerman中一开始的就是个注册树模式的运用,下面是对他的模拟
<?php class worker{ protected static $_workers=array(); public function __construct() { $this->workerid=spl_object_hash($this); static::$_workers[$this->workerid]=$this; } public static function runall(){ foreach (static::$_workers as $worker) { var_dump($worker); } } } new worker(); new worker(); worker::runall();
在worker的构造函数中,把当前new的对象挂到了worker类的静态变量属性数组里,在下次使用的时候直接在那个数组里取