Neos.ContentRepository/Classes/Domain/Model/Node.php
public function moveInto(NodeInterface $referenceNode, string $newName = null): void
    {
        if ($referenceNode === $this || $referenceNode === $this->getParent()) {
            return;
        }

        if ($this->isRoot()) {
            throw new NodeException('The root node cannot be moved.', 1346769001);
        }

        $name = $newName !== null ? $newName : $this->getName();

        if ($referenceNode !== $this->getParent() && $referenceNode->getNode($name) !== null) {
            throw new NodeExistsException(sprintf('Node with path "%s" already exists.', $name), 1292503470);
        }

        if (($referenceNode instanceof Node && !$referenceNode->willChildNodeBeAutoCreated($name)) && !$referenceNode->isNodeTypeAllowedAsChildNode($this->getNodeType())) {
            throw new NodeConstraintException(sprintf('Cannot move %s into %s', $this, $referenceNode), 1404648124);
        }

        $this->emitBeforeNodeMove($this, $referenceNode, NodeDataRepository::POSITION_LAST);
        $this->setPath(NodePaths::addNodePathSegment($referenceNode->getPath(), $name));
        $this->nodeDataRepository->persistEntities();

        $this->nodeDataRepository->setNewIndex($this->nodeData, NodeDataRepository::POSITION_LAST);
        $this->context->getFirstLevelNodeCache()->flush();
        $this->emitAfterNodeMove($this, $referenceNode, NodeDataRepository::POSITION_LAST);
        $this->emitNodeUpdated($this);
    }
public function moveInto(NodeInterface $referenceNode, string $newName = null): void
    {
        if ($referenceNode === $this || $referenceNode === $this->getParent()) {
            return;
        }

        if ($this->isRoot()) {
            throw new NodeException('The root node cannot be moved.', 1346769001);
        }

        $name = $newName !== null ? $newName : $this->getName();

        if ($referenceNode !== $this->getParent() && $referenceNode->getNode($name) !== null) {
            throw new NodeExistsException(sprintf('Node with path "%s" already exists.', $name), 1292503470);
        }

        if (($referenceNode instanceof Node && !$referenceNode->willChildNodeBeAutoCreated($name)) && !$referenceNode->isNodeTypeAllowedAsChildNode($this->getNodeType())) {
            throw new NodeConstraintException(sprintf('Cannot move %s into %s', $this, $referenceNode), 1404648124);
        }

        $this->emitBeforeNodeMove($this, $referenceNode, NodeDataRepository::POSITION_LAST);
        $this->setPath(NodePaths::addNodePathSegment($referenceNode->getPath(), $name));
        $this->nodeDataRepository->persistEntities();

        $this->nodeDataRepository->setNewIndex($this->nodeData, NodeDataRepository::POSITION_LAST);
        $this->context->getFirstLevelNodeCache()->flush();
        $this->emitAfterNodeMove($this, $referenceNode, NodeDataRepository::POSITION_LAST);
        $this->emitNodeUpdated($this);
    }
public function moveInto ( NodeInterface $ referenceNode , string $ newName = null ) : void { if ( $ referenceNode === $ this || $ referenceNode === $ this -> getParent ( ) ) { return ; } if ( $ this -> isRoot ( ) ) { throw new NodeException ( 'The root node cannot be moved.' , 1346769001 ) ; } $ name = $ newName !== null ? $ newName : $ this -> getName ( ) ; if ( $ referenceNode !== $ this -> getParent ( ) && $ referenceNode -> getNode ( $ name ) !== null ) { throw new NodeExistsException ( sprintf ( 'Node with path "%s" already exists.' , $ name ) , 1292503470 ) ; } if ( ( $ referenceNode instanceof Node && ! $ referenceNode -> willChildNodeBeAutoCreated ( $ name ) ) && ! $ referenceNode -> isNodeTypeAllowedAsChildNode ( $ this -> getNodeType ( ) ) ) { throw new NodeConstraintException ( sprintf ( 'Cannot move %s into %s' , $ this , $ referenceNode ) , 1404648124 ) ; } $ this -> emitBeforeNodeMove ( $ this , $ referenceNode , NodeDataRepository :: POSITION_LAST ) ; $ this -> setPath ( NodePaths :: addNodePathSegment ( $ referenceNode -> getPath ( ) , $ name ) ) ; $ this -> nodeDataRepository -> persistEntities ( ) ; $ this -> nodeDataRepository -> setNewIndex ( $ this -> nodeData , NodeDataRepository :: POSITION_LAST ) ; $ this -> context -> getFirstLevelNodeCache ( ) -> flush ( ) ; $ this -> emitAfterNodeMove ( $ this , $ referenceNode , NodeDataRepository :: POSITION_LAST ) ; $ this -> emitNodeUpdated ( $ this ) ; }
Moves this node into the given node

@param NodeInterface $referenceNode
@param string $newName
@throws NodeConstraintException
@throws NodeException
@throws NodeExistsException
@throws NodeTypeNotFoundException
@api
Moves this node into the given node