public function addObjectWatcher($object)
{
if (!is_object($object)) {
throw new \InvalidArgumentException("Not an object!");
}
$identifier = spl_object_hash($object) . ":" . get_class($object);
if (isset($this->leakInfo[$identifier])) {
return $this->leakInfo["id"];
}
$this->leakInfo[$identifier] = ["id" => $id = md5($identifier . ":" . $this->leakSeed++), "class" => get_class($object), "hash" => $identifier];
$this->leakInfo[$id] = $this->leakInfo[$identifier];
$this->leakWatch[$id] = new \WeakRef($object);
return $id;
}