/** * Checks for any libxml errors and logs them. * * @param EveApiReadWriteInterface $data * @param MediatorInterface $yem * * @throws \DomainException * @throws \InvalidArgumentException * @throws \LogicException * @throws \UnexpectedValueException */ protected function checkLibXmlErrors(EveApiReadWriteInterface $data, MediatorInterface $yem) { /** * @var \libXMLError[] $errors */ $errors = libxml_get_errors(); if (0 !== count($errors)) { foreach ($errors as $error) { switch ($error->level) { case LIBXML_ERR_WARNING: $messagePrefix = 'Libxml Warning'; $level = Logger::NOTICE; break; case LIBXML_ERR_ERROR: $messagePrefix = 'Libxml Error'; $level = Logger::WARNING; break; case LIBXML_ERR_FATAL: $messagePrefix = 'Libxml Fatal Error'; $level = Logger::ERROR; break; default: $messagePrefix = ''; $level = Logger::DEBUG; break; } if ('' !== $messagePrefix) { $messagePrefix .= sprintf(' %u: %s - Col: %u Line: %u during the transform of', $error->code, trim($error->message), $error->column, $error->line); $yem->triggerLogEvent('Yapeal.Log.log', $level, $this->createEveApiMessage($messagePrefix, $data)); } } } }
/** * @param ContainerInterface $dic * @param MediatorInterface $mediator */ private function wireCreator(ContainerInterface $dic, MediatorInterface $mediator) { if (empty($dic['Yapeal.EveApi.Creator'])) { $dic['Yapeal.EveApi.Creator'] = function () use($dic) { $loader = new \Twig_Loader_Filesystem($dic['Yapeal.EveApi.dir']); $twig = new \Twig_Environment($loader, ['debug' => true, 'strict_variables' => true, 'autoescape' => false]); $filter = new \Twig_SimpleFilter('ucFirst', function ($value) { return ucfirst($value); }); $twig->addFilter($filter); $filter = new \Twig_SimpleFilter('lcFirst', function ($value) { return lcfirst($value); }); $twig->addFilter($filter); /** * @var \Yapeal\EveApi\Creator $create */ $create = new $dic['Yapeal.EveApi.Handlers.create']($twig, $dic['Yapeal.EveApi.dir']); if (!empty($dic['Yapeal.Create.overwrite'])) { $create->setOverwrite($dic['Yapeal.Create.overwrite']); } return $create; }; $mediator->addServiceListener('Yapeal.EveApi.create', ['Yapeal.EveApi.Creator', 'createEveApi'], 'last'); } }