Neos\Neos\Routing\Aspects\RouteCacheAspect::addCurrentNodeIdentifier PHP Method

addCurrentNodeIdentifier() public method

Add the current node and all parent identifiers to be used for cache entry tagging
public addCurrentNodeIdentifier ( Neos\Flow\Aop\JoinPointInterface $joinPoint ) : void
$joinPoint Neos\Flow\Aop\JoinPointInterface The current join point
return void
    public function addCurrentNodeIdentifier(JoinPointInterface $joinPoint)
    {
        $values = $joinPoint->getMethodArgument('values');
        if (!isset($values['node']) || strpos($values['node'], '@') === false) {
            return;
        }
        // Build context explicitly without authorization checks because the security context isn't available yet
        // anyway and any Entity Privilege targeted on Workspace would fail at this point:
        $this->securityContext->withoutAuthorizationChecks(function () use($joinPoint, $values) {
            $contextPathPieces = NodePaths::explodeContextPath($values['node']);
            $context = $this->contextFactory->create(['workspaceName' => $contextPathPieces['workspaceName'], 'dimensions' => $contextPathPieces['dimensions'], 'invisibleContentShown' => true]);
            $node = $context->getNode($contextPathPieces['nodePath']);
            if (!$node instanceof NodeInterface) {
                return;
            }
            $values['node-identifier'] = $node->getIdentifier();
            $node = $node->getParent();
            $values['node-parent-identifier'] = array();
            while ($node !== null) {
                $values['node-parent-identifier'][] = $node->getIdentifier();
                $node = $node->getParent();
            }
            $joinPoint->setMethodArgument('values', $values);
        });
    }