subdefs = []; foreach ($subdefs as $subdef) { $this->subdefs[$subdef->getSubdef()->get_name()] = $subdef; } } /** * @param string $name * @return SubdefView */ public function getSubdef($name) { if (isset($this->subdefs[$name])) { return $this->subdefs[$name]; } throw new \OutOfBoundsException(sprintf('There are no subdef named "%s"', $name)); } /** * @return SubdefView */ public function getSubdefs() { return $this->subdefs; } }