eZ\Publish\Core\REST\Common\Output\ValueObjectVisitorDispatcher::visit PHP Method

visit() public method

public visit ( object $data ) : mixed
$data object The visited object
return mixed
    public function visit($data)
    {
        if (!is_object($data)) {
            throw new Exceptions\InvalidTypeException($data);
        }
        $checkedClassNames = array();
        $className = get_class($data);
        do {
            $checkedClassNames[] = $className;
            if (isset($this->visitors[$className])) {
                return $this->visitors[$className]->visit($this->outputVisitor, $this->outputGenerator, $data);
            }
        } while ($className = get_parent_class($className));
        throw new Exceptions\NoVisitorFoundException($checkedClassNames);
    }

Usage Example

Example #1
0
 /**
  * Visit struct returned by controllers.
  *
  * Can be called by sub-visitors to visit nested objects.
  *
  * @param object $data
  *
  * @return mixed
  */
 public function visitValueObject($data)
 {
     $this->valueObjectVisitorDispatcher->setOutputGenerator($this->generator);
     $this->valueObjectVisitorDispatcher->setOutputVisitor($this);
     return $this->valueObjectVisitorDispatcher->visit($data);
 }