public function freezePackageReflection($packageKey)
    {
        if (!$this->initialized) {
            $this->initialize();
        }
        if (empty($this->availableClassNames)) {
            $this->availableClassNames = $this->reflectionDataRuntimeCache->get('__availableClassNames');
        }

        $reflectionData = [
            'classReflectionData' => $this->classReflectionData,
            'classSchemata' => $this->classSchemata,
            'annotatedClasses' => $this->annotatedClasses,
            'classesByMethodAnnotations' => $this->classesByMethodAnnotations
        ];

        $reflectionData['classReflectionData'] = $this->filterArrayByClassesInPackageNamespace($reflectionData['classReflectionData'], $packageKey);
        $reflectionData['classSchemata'] = $this->filterArrayByClassesInPackageNamespace($reflectionData['classSchemata'], $packageKey);
        $reflectionData['annotatedClasses'] = $this->filterArrayByClassesInPackageNamespace($reflectionData['annotatedClasses'], $packageKey);

        $reflectionData['classesByMethodAnnotations'] = isset($reflectionData['classesByMethodAnnotations']) ? $reflectionData['classesByMethodAnnotations'] : [];
        $methodAnnotationsFilters = function ($className) use ($packageKey) {
            return (isset($this->availableClassNames[$packageKey]) && in_array($className, $this->availableClassNames[$packageKey]));
        };

        foreach ($reflectionData['classesByMethodAnnotations'] as $annotationClassName => $classNames) {
            $reflectionData['classesByMethodAnnotations'][$annotationClassName] = array_filter($classNames, $methodAnnotationsFilters);
        }

        $precompiledReflectionStoragePath = $this->getPrecompiledReflectionStoragePath();
        if (!is_dir($precompiledReflectionStoragePath)) {
            Files::createDirectoryRecursively($precompiledReflectionStoragePath);
        }
        $pathAndFilename = $precompiledReflectionStoragePath . $packageKey . '.dat';
        file_put_contents($pathAndFilename, extension_loaded('igbinary') ? igbinary_serialize($reflectionData) : serialize($reflectionData));
    }
public function freezePackageReflection($packageKey)
    {
        if (!$this->initialized) {
            $this->initialize();
        }
        if (empty($this->availableClassNames)) {
            $this->availableClassNames = $this->reflectionDataRuntimeCache->get('__availableClassNames');
        }

        $reflectionData = [
            'classReflectionData' => $this->classReflectionData,
            'classSchemata' => $this->classSchemata,
            'annotatedClasses' => $this->annotatedClasses,
            'classesByMethodAnnotations' => $this->classesByMethodAnnotations
        ];

        $reflectionData['classReflectionData'] = $this->filterArrayByClassesInPackageNamespace($reflectionData['classReflectionData'], $packageKey);
        $reflectionData['classSchemata'] = $this->filterArrayByClassesInPackageNamespace($reflectionData['classSchemata'], $packageKey);
        $reflectionData['annotatedClasses'] = $this->filterArrayByClassesInPackageNamespace($reflectionData['annotatedClasses'], $packageKey);

        $reflectionData['classesByMethodAnnotations'] = isset($reflectionData['classesByMethodAnnotations']) ? $reflectionData['classesByMethodAnnotations'] : [];
        $methodAnnotationsFilters = function ($className) use ($packageKey) {
            return (isset($this->availableClassNames[$packageKey]) && in_array($className, $this->availableClassNames[$packageKey]));
        };

        foreach ($reflectionData['classesByMethodAnnotations'] as $annotationClassName => $classNames) {
            $reflectionData['classesByMethodAnnotations'][$annotationClassName] = array_filter($classNames, $methodAnnotationsFilters);
        }

        $precompiledReflectionStoragePath = $this->getPrecompiledReflectionStoragePath();
        if (!is_dir($precompiledReflectionStoragePath)) {
            Files::createDirectoryRecursively($precompiledReflectionStoragePath);
        }
        $pathAndFilename = $precompiledReflectionStoragePath . $packageKey . '.dat';
        file_put_contents($pathAndFilename, extension_loaded('igbinary') ? igbinary_serialize($reflectionData) : serialize($reflectionData));
    }
public function freezePackageReflection ( $ packageKey ) { if ( ! $ this -> initialized ) { $ this -> initialize ( ) ; } if ( empty ( $ this -> availableClassNames ) ) { $ this -> availableClassNames = $ this -> reflectionDataRuntimeCache -> get ( '__availableClassNames' ) ; } $ reflectionData = [ 'classReflectionData' => $ this -> classReflectionData , 'classSchemata' => $ this -> classSchemata , 'annotatedClasses' => $ this -> annotatedClasses , 'classesByMethodAnnotations' => $ this -> classesByMethodAnnotations ] ; $ reflectionData [ 'classReflectionData' ] = $ this -> filterArrayByClassesInPackageNamespace ( $ reflectionData [ 'classReflectionData' ] , $ packageKey ) ; $ reflectionData [ 'classSchemata' ] = $ this -> filterArrayByClassesInPackageNamespace ( $ reflectionData [ 'classSchemata' ] , $ packageKey ) ; $ reflectionData [ 'annotatedClasses' ] = $ this -> filterArrayByClassesInPackageNamespace ( $ reflectionData [ 'annotatedClasses' ] , $ packageKey ) ; $ reflectionData [ 'classesByMethodAnnotations' ] = isset ( $ reflectionData [ 'classesByMethodAnnotations' ] ) ? $ reflectionData [ 'classesByMethodAnnotations' ] : [ ] ; $ methodAnnotationsFilters = function ( $ className ) use ( $ packageKey ) { return ( isset ( $ this -> availableClassNames [ $ packageKey ] ) && in_array ( $ className , $ this -> availableClassNames [ $ packageKey ] ) ) ; } ; foreach ( $ reflectionData [ 'classesByMethodAnnotations' ] as $ annotationClassName => $ classNames ) { $ reflectionData [ 'classesByMethodAnnotations' ] [ $ annotationClassName ] = array_filter ( $ classNames , $ methodAnnotationsFilters ) ; } $ precompiledReflectionStoragePath = $ this -> getPrecompiledReflectionStoragePath ( ) ; if ( ! is_dir ( $ precompiledReflectionStoragePath ) ) { Files :: createDirectoryRecursively ( $ precompiledReflectionStoragePath ) ; } $ pathAndFilename = $ precompiledReflectionStoragePath . $ packageKey . '.dat' ; file_put_contents ( $ pathAndFilename , extension_loaded ( 'igbinary' ) ? igbinary_serialize ( $ reflectionData ) : serialize ( $ reflectionData ) ) ; }
Stores the current reflection data related to classes of the specified package
in the PrecompiledReflectionData directory for the current context.

This method is used by the package manager.

@param string $packageKey
@return void
Stores the current reflection data related to classes of the specified package in the PrecompiledReflectionData directory for the current context .