protected function createProfileFromData($token, $data, $parent = null) {
$profile = new Profile($token);
$profile
->setIp($data['ip']);
$profile
->setMethod($data['method']);
$profile
->setUrl($data['url']);
$profile
->setTime($data['time']);
$profile
->setCollectors($data['data']);
if (!$parent && $data['parent']) {
$parent = $this
->read($data['parent']);
}
if ($parent) {
$profile
->setParent($parent);
}
foreach ($data['children'] as $token) {
if (!$token || !file_exists($file = $this
->getFilename($token))) {
continue;
}
$profile
->addChild($this
->createProfileFromData($token, unserialize(file_get_contents($file)), $profile));
}
return $profile;
}