factory = $factory; } public function load($data) { if (!$data instanceof NodeInterface) { throw new \InvalidArgumentException(\sprintf('Unsupported data. Expected Knp\Menu\NodeInterface but got %s', \is_object($data) ? \get_class($data) : \gettype($data))); } $item = $this->factory->createItem($data->getName(), $data->getOptions()); foreach ($data->getChildren() as $childNode) { $item->addChild($this->load($childNode)); } return $item; } public function supports($data) { return $data instanceof NodeInterface; } }