Storm\Drivers\Base\Mapping\Mappings\SemiLazyEntityPropertyToOneRelationMapping::Revive PHP Метод

Revive() публичный Метод

public Revive ( DomainDatabaseMap $DomainDatabaseMap, array $ResultRowArray, array $RevivalDataArray )
$DomainDatabaseMap Storm\Core\Mapping\DomainDatabaseMap
$ResultRowArray array
$RevivalDataArray array
    public function Revive(DomainDatabaseMap $DomainDatabaseMap, array $ResultRowArray, array $RevivalDataArray)
    {
        $this->ParentRowArrays[] = $ResultRowArray;
        $RelatedRevivalDataLoader = function ($ParentRow) use(&$DomainDatabaseMap, &$ResultRowArray) {
            static $ParentRowRelatedRevivalDataMap = null;
            if ($ParentRowRelatedRevivalDataMap === null) {
                $ParentRowRelatedRevivalDataMap = $this->LoadAllRelatedRows($DomainDatabaseMap, $ResultRowArray);
            }
            return $ParentRowRelatedRevivalDataMap[$ParentRow];
        };
        foreach ($RevivalDataArray as $Key => $RevivalData) {
            $Loader = function () use(&$RelatedRevivalDataLoader, $Key) {
                return $RelatedRevivalDataLoader($Key);
            };
            $RevivalData[$this->Property] = $this->MakeLazyRevivalData($DomainDatabaseMap, $ResultRowArray[$Key], $Loader);
        }
    }