Neos\Flow\ObjectManagement\DependencyInjection\ProxyClassBuilder::buildSetInstanceCode PHP Метод

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

This also makes sure that object creation does not end in an endless loop due to bi-directional dependencies.
protected buildSetInstanceCode ( Configuration $objectConfiguration ) : string
$objectConfiguration Neos\Flow\ObjectManagement\Configuration\Configuration
Результат string
    protected function buildSetInstanceCode(Configuration $objectConfiguration)
    {
        if ($objectConfiguration->getScope() === Configuration::SCOPE_PROTOTYPE) {
            return '';
        }
        $code = '        if (get_class($this) === \'' . $objectConfiguration->getClassName() . '\') \\Neos\\Flow\\Core\\Bootstrap::$staticObjectManager->setInstance(\'' . $objectConfiguration->getObjectName() . '\', $this);' . "\n";
        $className = $objectConfiguration->getClassName();
        foreach ($this->objectConfigurations as $otherObjectConfiguration) {
            if ($otherObjectConfiguration !== $objectConfiguration && $otherObjectConfiguration->getClassName() === $className) {
                $code .= '        if (get_class($this) === \'' . $otherObjectConfiguration->getClassName() . '\') \\Neos\\Flow\\Core\\Bootstrap::$staticObjectManager->setInstance(\'' . $otherObjectConfiguration->getObjectName() . '\', $this);' . "\n";
            }
        }
        return $code;
    }