Doctrine\ORM\Tools\SchemaTool::_getCommitOrder PHP Method

_getCommitOrder() private method

private _getCommitOrder ( array $classes )
$classes array
    private function _getCommitOrder(array $classes)
    {
        $calc = new CommitOrderCalculator;

        // Calculate dependencies
        foreach ($classes as $class) {
            $calc->addClass($class);

            foreach ($class->associationMappings as $assoc) {
                if ($assoc['isOwningSide']) {
                    $targetClass = $this->_em->getClassMetadata($assoc['targetEntity']);

                    if ( ! $calc->hasClass($targetClass->name)) {
                        $calc->addClass($targetClass);
                    }

                    // add dependency ($targetClass before $class)
                    $calc->addDependency($targetClass, $class);
                }
            }
        }

        return $calc->getCommitOrder();
    }