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

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

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, Version $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data eZ\Publish\Core\REST\Server\Values\Version
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $content = $data->content;
        $versionInfo = $content->getVersionInfo();
        $contentType = $data->contentType;
        $generator->startObjectElement('Version');
        $visitor->setHeader('Content-Type', $generator->getMediaType('Version'));
        $visitor->setHeader('Accept-Patch', $generator->getMediaType('VersionUpdate'));
        $path = $data->path;
        if ($path == null) {
            $path = $this->router->generate('ezpublish_rest_loadContentInVersion', array('contentId' => $content->id, 'versionNumber' => $versionInfo->versionNo));
        }
        $generator->startAttribute('href', $path);
        $generator->endAttribute('href');
        $visitor->visitValueObject($versionInfo);
        $generator->startHashElement('Fields');
        $generator->startList('field');
        foreach ($content->getFields() as $field) {
            $this->visitField($generator, $contentType, $field);
        }
        $generator->endList('field');
        $generator->endHashElement('Fields');
        $visitor->visitValueObject(new RelationListValue($data->relations, $content->id, $versionInfo->versionNo));
        $generator->endObjectElement('Version');
    }

Usage Example

Пример #1
0
 /**
  * Visit struct returned by controllers
  *
  * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor
  * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator
  * @param \eZ\Publish\Core\REST\Server\Values\CreatedVersion $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     parent::visit($visitor, $generator, $data->version);
     $visitor->setHeader('Location', $this->router->generate('ezpublish_rest_loadContentInVersion', array('contentId' => $data->version->content->id, 'versionNumber' => $data->version->content->getVersionInfo()->versionNo)));
     $visitor->setStatus(201);
 }