original_string: public function cacheFile($type = 'jpg', $quality = 80, $actual = false, $extras = [])
      {
          if ($type === 'guess') {
              $type = $this->guessType();
          }
  
          if (!$this->forceCache && !count($this->operations) && $type === $this->guessType()) {
              return $this->getFilename($this->getFilePath());
          }
  
          // Computes the hash
          $this->hash = $this->getHash($type, $quality, $extras);
  
          // Seo friendly image names
          $seofriendly = Grav::instance()['config']->get('system.images.seofriendly', false);
  
          if ($seofriendly) {
              $mini_hash = substr($this->hash, 0, 4) . substr($this->hash, -4);
              $cacheFile = "{$this->prettyName}-{$mini_hash}";
          } else {
              $cacheFile = "{$this->hash}-{$this->prettyName}";
          }
  
          $cacheFile .= '.' . $type;
  
          // If the files does not exists, save it
          $image = $this;
  
          // Target file should be younger than all the current image
          // dependencies
          $conditions = array(
              'younger-than' => $this->getDependencies()
          );
  
          // The generating function
          $generate = function ($target) use ($image, $type, $quality) {
              $result = $image->save($target, $type, $quality);
  
              if ($result !== $target) {
                  throw new GenerationError($result);
              }
  
              Grav::instance()->fireEvent('onImageMediumSaved', new Event(['image' => $target]));
          };
  
          // Asking the cache for the cacheFile
          try {
              $perms = Grav::instance()['config']->get('system.images.cache_perms', '0755');
              $perms = octdec($perms);
              $file = $this->getCacheSystem()->setDirectoryMode($perms)->getOrCreateFile($cacheFile, $conditions, $generate, $actual);
          } catch (GenerationError $e) {
              $file = $e->getNewFile();
          }
  
          // Nulling the resource
          $this->getAdapter()->setSource(new Source\File($file));
          $this->getAdapter()->deinit();
  
          if ($actual) {
              return $file;
          }
  
          return $this->getFilename($file);
      }
code: public function cacheFile($type = 'jpg', $quality = 80, $actual = false, $extras = [])
      {
          if ($type === 'guess') {
              $type = $this->guessType();
          }
  
          if (!$this->forceCache && !count($this->operations) && $type === $this->guessType()) {
              return $this->getFilename($this->getFilePath());
          }
  
          // Computes the hash
          $this->hash = $this->getHash($type, $quality, $extras);
  
          // Seo friendly image names
          $seofriendly = Grav::instance()['config']->get('system.images.seofriendly', false);
  
          if ($seofriendly) {
              $mini_hash = substr($this->hash, 0, 4) . substr($this->hash, -4);
              $cacheFile = "{$this->prettyName}-{$mini_hash}";
          } else {
              $cacheFile = "{$this->hash}-{$this->prettyName}";
          }
  
          $cacheFile .= '.' . $type;
  
          // If the files does not exists, save it
          $image = $this;
  
          // Target file should be younger than all the current image
          // dependencies
          $conditions = array(
              'younger-than' => $this->getDependencies()
          );
  
          // The generating function
          $generate = function ($target) use ($image, $type, $quality) {
              $result = $image->save($target, $type, $quality);
  
              if ($result !== $target) {
                  throw new GenerationError($result);
              }
  
              Grav::instance()->fireEvent('onImageMediumSaved', new Event(['image' => $target]));
          };
  
          // Asking the cache for the cacheFile
          try {
              $perms = Grav::instance()['config']->get('system.images.cache_perms', '0755');
              $perms = octdec($perms);
              $file = $this->getCacheSystem()->setDirectoryMode($perms)->getOrCreateFile($cacheFile, $conditions, $generate, $actual);
          } catch (GenerationError $e) {
              $file = $e->getNewFile();
          }
  
          // Nulling the resource
          $this->getAdapter()->setSource(new Source\File($file));
          $this->getAdapter()->deinit();
  
          if ($actual) {
              return $file;
          }
  
          return $this->getFilename($file);
      }
code_tokens: public function cacheFile ( $ type = 'jpg' , $ quality = 80 , $ actual = false , $ extras = [ ] ) { if ( $ type === 'guess' ) { $ type = $ this -> guessType ( ) ; } if ( ! $ this -> forceCache && ! count ( $ this -> operations ) && $ type === $ this -> guessType ( ) ) { return $ this -> getFilename ( $ this -> getFilePath ( ) ) ; } // Computes the hash $ this -> hash = $ this -> getHash ( $ type , $ quality , $ extras ) ; // Seo friendly image names $ seofriendly = Grav :: instance ( ) [ 'config' ] -> get ( 'system.images.seofriendly' , false ) ; if ( $ seofriendly ) { $ mini_hash = substr ( $ this -> hash , 0 , 4 ) . substr ( $ this -> hash , - 4 ) ; $ cacheFile = "{$this->prettyName}-{$mini_hash}" ; } else { $ cacheFile = "{$this->hash}-{$this->prettyName}" ; } $ cacheFile .= '.' . $ type ; // If the files does not exists, save it $ image = $ this ; // Target file should be younger than all the current image // dependencies $ conditions = array ( 'younger-than' => $ this -> getDependencies ( ) ) ; // The generating function $ generate = function ( $ target ) use ( $ image , $ type , $ quality ) { $ result = $ image -> save ( $ target , $ type , $ quality ) ; if ( $ result !== $ target ) { throw new GenerationError ( $ result ) ; } Grav :: instance ( ) -> fireEvent ( 'onImageMediumSaved' , new Event ( [ 'image' => $ target ] ) ) ; } ; // Asking the cache for the cacheFile try { $ perms = Grav :: instance ( ) [ 'config' ] -> get ( 'system.images.cache_perms' , '0755' ) ; $ perms = octdec ( $ perms ) ; $ file = $ this -> getCacheSystem ( ) -> setDirectoryMode ( $ perms ) -> getOrCreateFile ( $ cacheFile , $ conditions , $ generate , $ actual ) ; } catch ( GenerationError $ e ) { $ file = $ e -> getNewFile ( ) ; } // Nulling the resource $ this -> getAdapter ( ) -> setSource ( new Source \ File ( $ file ) ) ; $ this -> getAdapter ( ) -> deinit ( ) ; if ( $ actual ) { return $ file ; } return $ this -> getFilename ( $ file ) ; }
docstring: This is the same as the Gregwar Image class except this one fires a Grav Event on creation of new cached file
  
  @param string $type the image type
  @param int $quality the quality (for JPEG)
  @param bool $actual
  @param array $extras
  
  @return string
docstring_tokens: This is the same as the Gregwar Image class except this one fires a Grav Event on creation of new cached file