/**
* Find a menu item
*
* @param string $id menu item identifier
* @param array $with relation
* @return MenuItem
*/
public function findItem($id, $with = [])
{
$key = $this->getItemCacheKey($id);
return $this->cache->has($key) ? $this->cache->get($key) : call_user_func(function () use($key, $id, $with) {
if ($menu = $this->repo->findItem($id, $with)) {
$this->cache->put($key, $menu);
}
return $menu;
});
}