private function cacheSphringBean()
 {
     $origFile = new File($this->sphring->getYamlarh()->getFilename());
     $cacheFileBean = new File(sys_get_temp_dir() . DIRECTORY_SEPARATOR . SphringCacheEnum::CACHE_FOLDER . DIRECTORY_SEPARATOR . sprintf(SphringCacheEnum::CACHE_FILE_BEAN, $origFile->getHash('md5')));
     if (!$this->cacheManager->isCacheSphringBean()) {
         if ($cacheFileBean->isFile()) {
             $cacheFileBean->remove();
         }
         return;
     }
     $origFile = new File($this->sphring->getYamlarh()->getFilename());
     if ($cacheFileBean->isFile() && $origFile->getTime() == $cacheFileBean->getTime()) {
         return;
     }
     $beans = $this->sphring->getBeansObject();
     $origFile = $this->sphring->getYamlarh()->getFilename();
     $time = $this->getTime();
     touch($origFile, $time);
     $cacheFileBean->setContent(serialize($beans));
     touch($cacheFileBean->absolute(), $time);
 }
 private function loadBeansFromCache()
 {
     $origFile = new File($this->getSphring()->getYamlarh()->getFilename());
     $this->cacheFileContext = new File(sys_get_temp_dir() . DIRECTORY_SEPARATOR . SphringCacheEnum::CACHE_FOLDER . DIRECTORY_SEPARATOR . sprintf(SphringCacheEnum::CACHE_FILE_BEAN, $origFile->getHash('md5')));
     if (!$this->cacheFileContext->isFile()) {
         return;
     }
     $origFile = new File($this->getSphring()->getYamlarh()->getFilename());
     if ($origFile->getTime() != $this->cacheFileContext->getTime()) {
         return;
     }
     $beans = unserialize($this->cacheFileContext->getContent());
     $this->getSphring()->setBeansObject($beans);
     $proxies = [];
     //fast table writing
     $key = array_keys($beans);
     $size = sizeOf($key);
     for ($i = 0; $i < $size; $i++) {
         $bean = $beans[$key[$i]];
         $proxies[$bean->getId()] = $bean->getObject();
     }
     $this->getSphring()->setProxyBeans($proxies);
 }