Doctrine\ODM\MongoDB\UnitOfWork::getClassesForCommitAction PHP Method

getClassesForCommitAction() private method

Groups a list of scheduled documents by their class.
private getClassesForCommitAction ( array $documents, boolean $includeEmbedded = false ) : array
$documents array Scheduled documents (e.g. $this->documentInsertions)
$includeEmbedded boolean
return array Tuples of ClassMetadata and a corresponding array of objects
    private function getClassesForCommitAction($documents, $includeEmbedded = false)
    {
        if (empty($documents)) {
            return array();
        }
        $divided = array();
        $embeds = array();
        foreach ($documents as $oid => $d) {
            $className = get_class($d);
            if (isset($embeds[$className])) {
                continue;
            }
            if (isset($divided[$className])) {
                $divided[$className][1][$oid] = $d;
                continue;
            }
            $class = $this->dm->getClassMetadata($className);
            if ($class->isEmbeddedDocument && !$includeEmbedded) {
                $embeds[$className] = true;
                continue;
            }
            if (empty($divided[$class->name])) {
                $divided[$class->name] = array($class, array($oid => $d));
            } else {
                $divided[$class->name][1][$oid] = $d;
            }
        }
        return $divided;
    }
UnitOfWork