Neos\Flow\Aop\Pointcut\PointcutFilterComposite::buildArgumentEvaluationAccessCode PHP Метод

buildArgumentEvaluationAccessCode() защищенный Метод

Returns the PHP code used to access one argument of a runtime evaluation
protected buildArgumentEvaluationAccessCode ( mixed $argumentAccess, &$useGlobalObjects = false ) : string
$argumentAccess mixed The unparsed argument access, might be string or array
Результат string The condition code
    protected function buildArgumentEvaluationAccessCode($argumentAccess, &$useGlobalObjects = false)
    {
        if (is_array($argumentAccess)) {
            $valuesAccessCodes = [];
            foreach ($argumentAccess as $singleValue) {
                $valuesAccessCodes[] = $this->buildArgumentEvaluationAccessCode($singleValue);
            }
            $argumentAccessCode = 'array(' . implode(', ', $valuesAccessCodes) . ')';
        } else {
            $objectAccess = explode('.', $argumentAccess, 2);
            if (count($objectAccess) === 2 && $objectAccess[0] === 'current') {
                $objectAccess = explode('.', $objectAccess[1], 2);
                if (count($objectAccess) === 1) {
                    $argumentAccessCode = '$globalObjects[\'' . $objectAccess[0] . '\']';
                } else {
                    $argumentAccessCode = '\\Neos\\Utility\\ObjectAccess::getPropertyPath($globalObjects[\'' . $objectAccess[0] . '\'], \'' . $objectAccess[1] . '\')';
                }
                $useGlobalObjects = true;
            } elseif (count($objectAccess) === 2 && $objectAccess[0] === 'this') {
                $argumentAccessCode = '\\Neos\\Utility\\ObjectAccess::getPropertyPath($currentObject, \'' . $objectAccess[1] . '\')';
            } else {
                $argumentAccessCode = $argumentAccess;
            }
        }
        return $argumentAccessCode;
    }