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

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

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, eZ\Publish\API\Repository\Values\Content\URLAlias $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data eZ\Publish\API\Repository\Values\Content\URLAlias
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $generator->startObjectElement('UrlAlias');
        $visitor->setHeader('Content-Type', $generator->getMediaType('UrlAlias'));
        $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadURLAlias', array('urlAliasId' => $data->id)));
        $generator->endAttribute('href');
        $generator->startAttribute('id', $data->id);
        $generator->endAttribute('id');
        $generator->startAttribute('type', $this->serializeType($data->type));
        $generator->endAttribute('type');
        if ($data->type === Values\Content\URLAlias::LOCATION) {
            $generator->startObjectElement('location', 'Location');
            $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadLocation', array('locationPath' => $data->destination)));
            $generator->endAttribute('href');
            $generator->endObjectElement('location');
        } else {
            $generator->startValueElement('resource', $data->destination);
            $generator->endValueElement('resource');
        }
        $generator->startValueElement('path', $data->path);
        $generator->endValueElement('path');
        $generator->startValueElement('languageCodes', implode(',', $data->languageCodes));
        $generator->endValueElement('languageCodes');
        $generator->startValueElement('alwaysAvailable', $this->serializeBool($generator, $data->alwaysAvailable));
        $generator->endValueElement('alwaysAvailable');
        $generator->startValueElement('isHistory', $this->serializeBool($generator, $data->isHistory));
        $generator->endValueElement('isHistory');
        $generator->startValueElement('forward', $this->serializeBool($generator, $data->forward));
        $generator->endValueElement('forward');
        $generator->startValueElement('custom', $this->serializeBool($generator, $data->isCustom));
        $generator->endValueElement('custom');
        $generator->endObjectElement('UrlAlias');
    }

Usage Example

 /**
  * 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\CreatedURLAlias $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     parent::visit($visitor, $generator, $data->urlAlias);
     $visitor->setHeader('Location', $this->router->generate('ezpublish_rest_loadURLAlias', array('urlAliasId' => $data->urlAlias->id)));
     $visitor->setStatus(201);
 }