private function _checkCurrentLocks()
    {
        foreach ($this->_classHierarchy as $classInfo) {
            // FATAL: If any part of our class hierarchy is already locked ("is
            // being compiled right now", higher up the call stack), then it's a
            // bad map with circular "import"-statements.
            // NOTE: This specifically protects against the dangerous scenario
            // of importing classes derived from our hierarchy but whose
            // classname isn't in the current class hierarchy, so they weren't
            // blocked by the "import-target sanity checks". So when they get
            // to their own sub-compilation, their class hierarchy is checked
            // here and we'll discover their circular inheritance.
            if (isset($this->_propertyMapCache->compilerLocks[$classInfo['className']])) {
                // NOTE: strictClassName goes in "arg1" because it's being
                // compiled earlier than us, so we're definitely the "arg2".
                throw new CircularPropertyMapException(
                    $classInfo['strictClassName'],
                    $this->_strictSolveClassName
                );
            }
        }
    }
private function _checkCurrentLocks()
    {
        foreach ($this->_classHierarchy as $classInfo) {
            // FATAL: If any part of our class hierarchy is already locked ("is
            // being compiled right now", higher up the call stack), then it's a
            // bad map with circular "import"-statements.
            // NOTE: This specifically protects against the dangerous scenario
            // of importing classes derived from our hierarchy but whose
            // classname isn't in the current class hierarchy, so they weren't
            // blocked by the "import-target sanity checks". So when they get
            // to their own sub-compilation, their class hierarchy is checked
            // here and we'll discover their circular inheritance.
            if (isset($this->_propertyMapCache->compilerLocks[$classInfo['className']])) {
                // NOTE: strictClassName goes in "arg1" because it's being
                // compiled earlier than us, so we're definitely the "arg2".
                throw new CircularPropertyMapException(
                    $classInfo['strictClassName'],
                    $this->_strictSolveClassName
                );
            }
        }
    }
private function _checkCurrentLocks ( ) { foreach ( $ this -> _classHierarchy as $ classInfo ) { // FATAL: If any part of our class hierarchy is already locked ("is // being compiled right now", higher up the call stack), then it's a // bad map with circular "import"-statements. // NOTE: This specifically protects against the dangerous scenario // of importing classes derived from our hierarchy but whose // classname isn't in the current class hierarchy, so they weren't // blocked by the "import-target sanity checks". So when they get // to their own sub-compilation, their class hierarchy is checked // here and we'll discover their circular inheritance. if ( isset ( $ this -> _propertyMapCache -> compilerLocks [ $ classInfo [ 'className' ] ] ) ) { // NOTE: strictClassName goes in "arg1" because it's being // compiled earlier than us, so we're definitely the "arg2". throw new CircularPropertyMapException ( $ classInfo [ 'strictClassName' ] , $ this -> _strictSolveClassName ) ; } } }
Check for already-locked classes in the solve-class hierarchy.

Analyzes the solve-class hierarchy and verifies that we don't violate
any current anti-circular map locks.

@throws CircularPropertyMapException
Check for already - locked classes in the solve - class hierarchy .