Neos\Neos\Fusion\Cache\ContentCacheFlusher::registerNodeChange PHP Method

registerNodeChange() public method

Register a node change for a later cache flush. This method is triggered by a signal sent via ContentRepository's Node model or the Neos Publishing Service.
public registerNodeChange ( Neos\ContentRepository\Domain\Model\NodeInterface $node ) : void
$node Neos\ContentRepository\Domain\Model\NodeInterface The node which has changed in some way
return void
    public function registerNodeChange(NodeInterface $node)
    {
        $this->tagsToFlush[ContentCache::TAG_EVERYTHING] = 'which were tagged with "Everything".';
        $nodeTypesToFlush = $this->getAllImplementedNodeTypes($node->getNodeType());
        foreach ($nodeTypesToFlush as $nodeType) {
            $nodeTypeName = $nodeType->getName();
            $this->tagsToFlush['NodeType_' . $nodeTypeName] = sprintf('which were tagged with "NodeType_%s" because node "%s" has changed and was of type "%s".', $nodeTypeName, $node->getPath(), $node->getNodeType()->getName());
        }
        $this->tagsToFlush['Node_' . $node->getIdentifier()] = sprintf('which were tagged with "Node_%s" because node "%s" has changed.', $node->getIdentifier(), $node->getPath());
        $originalNode = $node;
        while ($node->getDepth() > 1) {
            $node = $node->getParent();
            // Workaround for issue #56566 in Neos.ContentRepository
            if ($node === null) {
                break;
            }
            $tagName = 'DescendantOf_' . $node->getIdentifier();
            $this->tagsToFlush[$tagName] = sprintf('which were tagged with "%s" because node "%s" has changed.', $tagName, $originalNode->getPath());
        }
    }