original_string: public function setCacheFile($cacheFile)
      {
          if (!is_string($cacheFile) && $cacheFile !== false) {
              throw new InvalidArgumentException('Router cache file must be a string or false');
          }
  
          if ($cacheFile && file_exists($cacheFile) && !is_readable($cacheFile)) {
              throw new RuntimeException(
                  sprintf('Router cache file `%s` is not readable', $cacheFile)
              );
          }
  
          if ($cacheFile && !file_exists($cacheFile) && !is_writable(dirname($cacheFile))) {
              throw new RuntimeException(
                  sprintf('Router cache file directory `%s` is not writable', dirname($cacheFile))
              );
          }
  
          $this->cacheFile = $cacheFile;
          return $this;
      }
code: public function setCacheFile($cacheFile)
      {
          if (!is_string($cacheFile) && $cacheFile !== false) {
              throw new InvalidArgumentException('Router cache file must be a string or false');
          }
  
          if ($cacheFile && file_exists($cacheFile) && !is_readable($cacheFile)) {
              throw new RuntimeException(
                  sprintf('Router cache file `%s` is not readable', $cacheFile)
              );
          }
  
          if ($cacheFile && !file_exists($cacheFile) && !is_writable(dirname($cacheFile))) {
              throw new RuntimeException(
                  sprintf('Router cache file directory `%s` is not writable', dirname($cacheFile))
              );
          }
  
          $this->cacheFile = $cacheFile;
          return $this;
      }
code_tokens: public function setCacheFile ( $ cacheFile ) { if ( ! is_string ( $ cacheFile ) && $ cacheFile !== false ) { throw new InvalidArgumentException ( 'Router cache file must be a string or false' ) ; } if ( $ cacheFile && file_exists ( $ cacheFile ) && ! is_readable ( $ cacheFile ) ) { throw new RuntimeException ( sprintf ( 'Router cache file `%s` is not readable' , $ cacheFile ) ) ; } if ( $ cacheFile && ! file_exists ( $ cacheFile ) && ! is_writable ( dirname ( $ cacheFile ) ) ) { throw new RuntimeException ( sprintf ( 'Router cache file directory `%s` is not writable' , dirname ( $ cacheFile ) ) ) ; } $ this -> cacheFile = $ cacheFile ; return $ this ; }
docstring: Set path to fast route cache file. If this is false then route caching is disabled.
  
  @param string|false $cacheFile
  
  @return static
  
  @throws InvalidArgumentException If cacheFile is not a string or not false
  @throws RuntimeException         If cacheFile directory is not writable
docstring_tokens: Set path to fast route cache file . If this is false then route caching is disabled .