original_string: protected function findTemplate($template)
      {
          $logicalName = (string) $template;
  
          if (isset($this->cache[$logicalName])) {
              return $this->cache[$logicalName];
          }
  
          $file     = null;
          $previous = null;
          try {
              $template = $this->parser->parse($template);
              try {
                  $file = $this->locator->locate($template);
              } catch (\InvalidArgumentException $e) {
                  $previous = $e;
              }
          } catch (\Exception $e) {
              try {
                  $file = parent::findTemplate($template);
              } catch (\Twig_Error_Loader $e) {
                  $previous = $e;
              }
          }
  
          if (false === $file || null === $file) {
              throw new \Twig_Error_Loader(sprintf('Unable to find template "%s".', $logicalName), -1, null, $previous);
          }
  
          return $this->cache[$logicalName] = $file;
      }
code: protected function findTemplate($template)
      {
          $logicalName = (string) $template;
  
          if (isset($this->cache[$logicalName])) {
              return $this->cache[$logicalName];
          }
  
          $file     = null;
          $previous = null;
          try {
              $template = $this->parser->parse($template);
              try {
                  $file = $this->locator->locate($template);
              } catch (\InvalidArgumentException $e) {
                  $previous = $e;
              }
          } catch (\Exception $e) {
              try {
                  $file = parent::findTemplate($template);
              } catch (\Twig_Error_Loader $e) {
                  $previous = $e;
              }
          }
  
          if (false === $file || null === $file) {
              throw new \Twig_Error_Loader(sprintf('Unable to find template "%s".', $logicalName), -1, null, $previous);
          }
  
          return $this->cache[$logicalName] = $file;
      }
code_tokens: protected function findTemplate ( $ template ) { $ logicalName = ( string ) $ template ; if ( isset ( $ this -> cache [ $ logicalName ] ) ) { return $ this -> cache [ $ logicalName ] ; } $ file = null ; $ previous = null ; try { $ template = $ this -> parser -> parse ( $ template ) ; try { $ file = $ this -> locator -> locate ( $ template ) ; } catch ( \ InvalidArgumentException $ e ) { $ previous = $ e ; } } catch ( \ Exception $ e ) { try { $ file = parent :: findTemplate ( $ template ) ; } catch ( \ Twig_Error_Loader $ e ) { $ previous = $ e ; } } if ( false === $ file || null === $ file ) { throw new \ Twig_Error_Loader ( sprintf ( 'Unable to find template "%s".' , $ logicalName ) , - 1 , null , $ previous ) ; } return $ this -> cache [ $ logicalName ] = $ file ; }
docstring: Returns the path to the template file.
  
  The file locator is used to locate the template when the naming convention
  is the symfony one (i.e. the name can be parsed).
  Otherwise the template is located using the locator from the twig library.
  
  @param string|TemplateReferenceInterface $template The template
  
  @throws \Twig_Error_Loader if the template could not be found
  
  @return string The path to the template file
docstring_tokens: Returns the path to the template file .