eZ\Publish\Core\REST\Server\Output\ValueObjectVisitor\Exception::visit PHP Метод

visit() публичный Метод

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, Exception $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data Exception
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $generator->startObjectElement('ErrorMessage');
        $statusCode = $this->getStatus();
        $visitor->setStatus($statusCode);
        $visitor->setHeader('Content-Type', $generator->getMediaType('ErrorMessage'));
        $generator->startValueElement('errorCode', $statusCode);
        $generator->endValueElement('errorCode');
        $generator->startValueElement('errorMessage', $this->httpStatusCodes[$statusCode]);
        $generator->endValueElement('errorMessage');
        if ($data instanceof Translatable && $this->translator) {
            /** @Ignore */
            $errorDescription = $this->translator->trans($data->getMessageTemplate(), $data->getParameters(), 'repository_exceptions');
        } else {
            $errorDescription = $data->getMessage();
        }
        $generator->startValueElement('errorDescription', $errorDescription);
        $generator->endValueElement('errorDescription');
        if ($this->debug) {
            $generator->startValueElement('trace', $data->getTraceAsString());
            $generator->endValueElement('trace');
            $generator->startValueElement('file', $data->getFile());
            $generator->endValueElement('file');
            $generator->startValueElement('line', $data->getLine());
            $generator->endValueElement('line');
        }
        if ($previous = $data->getPrevious()) {
            $generator->startObjectElement('Previous', 'ErrorMessage');
            $visitor->visitValueObject($previous);
            $generator->endObjectElement('Previous');
        }
        $generator->endObjectElement('ErrorMessage');
    }