router = $router; $this->config = $config; $this->rac = $rac; $this->user = $user; } public function getDash() { $dashboard = new DashBoard($this->config['title']); foreach ($this->config['zones'] as $zone) { $objZone = call_user_func_array( array( new \ReflectionClass($zone['model_class']), 'newInstance' ), $zone['model_params'] ); $objZone->setUser($this->user); foreach ($zone['items'] as $item) { $objItem = call_user_func_array( array( new \ReflectionClass($item['model_class']), 'newInstance' ), $item['model_params'] ); $method = $item['test_is_granted'] ? 'addItemIfGranted' : 'addChild'; $this->rac->setRoute(!empty($item['route_uri']) ? $item['route_uri'] : $this->router->generate($item['route_name'], $item['route_params'])); call_user_func(array($objZone, $method), $objItem, $this->rac); } $dashboard->addZone($objZone); } return $dashboard; } }