/** * @param string $name * * @return mixed|null * @throws SettingException */ public function __get($name) { switch ($name) { case 'container': $class_name = 'Hametuha\\HamePub\\MetaInf\\' . ucfirst($name); return $class_name::get($this->id); break; case 'parser': return HTML5Parser::get($this->id); break; case 'opf': return Content::get($this->id); break; case 'toc': return Toc::get($this->id) ?: Toc::init($this->id, 'Index'); break; case 'distributor': return Distributor::get($this->id); break; default: return null; break; } }
/** * Recursively add toc * * @param Toc $toc * @param string $src * @param array $headers */ private function recursiveToc(Toc &$toc, $src, array $headers) { foreach ($headers as $id => $header) { $child = $toc->addChild($header['content'], $src . '#' . $id); if ($header['children']) { $this->recursiveToc($child, $src, $header['children']); } } }