/** * @param $names * @param callable $cb */ public function get($agent, $cb) { $this->browsers->findOne(function ($item) use($cb, $agent) { if ($item) { call_user_func($cb, $item); return; } $browser = \get_browser($agent, true); $browser['name'] = $browser['browser']; unset($browser['browser_name_regex'], $browser['browser']); $this->browsers->insert(['_id' => $agent] + $browser); call_user_func($cb, $browser); }, ['where' => ['_id' => $agent]]); }