Neos\Flow\Reflection\ReflectionService::loadClassReflectionCompiletimeCache PHP 메소드

loadClassReflectionCompiletimeCache() 보호된 메소드

The compile time cache is only supported for Development context and thus this function will return in any other context. If no reflection data was found, this method will at least load the precompiled reflection data of any possible frozen package. Even if precompiled reflection data could be loaded, FALSE will be returned in order to signal that other packages still need to be reflected.
protected loadClassReflectionCompiletimeCache ( ) : boolean
리턴 boolean TRUE if reflection data could be loaded, otherwise FALSE
    protected function loadClassReflectionCompiletimeCache()
    {
        $data = $this->reflectionDataCompiletimeCache->get('ReflectionData');
        if ($data !== false) {
            foreach ($data as $propertyName => $propertyValue) {
                $this->{$propertyName} = $propertyValue;
            }
            return true;
        }
        if (!$this->context->isDevelopment()) {
            return false;
        }
        $useIgBinary = extension_loaded('igbinary');
        foreach ($this->packageManager->getActivePackages() as $packageKey => $package) {
            if (!$this->packageManager->isPackageFrozen($packageKey)) {
                continue;
            }
            $pathAndFilename = $this->getPrecompiledReflectionStoragePath() . $packageKey . '.dat';
            if (!file_exists($pathAndFilename)) {
                continue;
            }
            $data = $useIgBinary ? igbinary_unserialize(file_get_contents($pathAndFilename)) : unserialize(file_get_contents($pathAndFilename));
            foreach ($data as $propertyName => $propertyValue) {
                $this->{$propertyName} = Arrays::arrayMergeRecursiveOverrule($this->{$propertyName}, $propertyValue);
            }
        }
        return false;
    }
ReflectionService