protected function get($type) { $module = new CountryModule($this->client); $em = $this->getEntityManager(); $countries = $em->getRepository('Erpk\\Common\\Entity\\Country'); $code = $this->getParameter('code'); if (preg_match('/^[0-9]+$/', $code)) { $country = $countries->findOneById((int) $code); } else { $country = $countries->findOneByCode($code); } if ($country instanceof Country) { $data = $module->{'get' . $type}($country); switch ($type) { case 'Economy': $data['embargoes']['@nodeName'] = 'embargo'; break; case 'Society': $data['regions']['@nodeName'] = 'region'; break; } $vm = new ViewModel($data); $vm->setRootNodeName('country'); } else { $vm = ViewModel::error('CountryNotFoundException', 500); } return $vm; }
protected function controller($params) { $ex = explode('::', $params['_controller']); $className = 'Erpk\\Harserver\\Controller\\' . $ex[0]; $obj = new $className($this->client, $params); try { return $obj->{$ex[1]}(); } catch (Exception $e) { return ViewModel::error(get_class($e), 500, (string) $e); } }