original_string: public static function startFromFileCache(string $cacheFile)
      {
          self::start(
                  function() use($cacheFile)
                  {
                      if (file_exists($cacheFile)) {
                          return unserialize(file_get_contents($cacheFile));
                      }
  
                      return [];
                  },
                  function(array $annotationData) use($cacheFile)
                  {
                      file_put_contents($cacheFile, serialize($annotationData));
                  }
          );
      }
code: public static function startFromFileCache(string $cacheFile)
      {
          self::start(
                  function() use($cacheFile)
                  {
                      if (file_exists($cacheFile)) {
                          return unserialize(file_get_contents($cacheFile));
                      }
  
                      return [];
                  },
                  function(array $annotationData) use($cacheFile)
                  {
                      file_put_contents($cacheFile, serialize($annotationData));
                  }
          );
      }
code_tokens: public static function startFromFileCache ( string $ cacheFile ) { self :: start ( function ( ) use ( $ cacheFile ) { if ( file_exists ( $ cacheFile ) ) { return unserialize ( file_get_contents ( $ cacheFile ) ) ; } return [ ] ; } , function ( array $ annotationData ) use ( $ cacheFile ) { file_put_contents ( $ cacheFile , serialize ( $ annotationData ) ) ; } ) ; }
docstring: starts annotation cache with given cache file
  
  @param  string  $cacheFile  path to file wherein cached annotation data is stored
  @since  3.0.0
docstring_tokens: starts annotation cache with given cache file