/**
  * @see sfTask
  */
 protected function execute($arguments = array(), $options = array())
 {
     // Call realpath() before constructing PHP_CodeSniffer because the
     // constructor changes our current working directory.  An argument handler
     // which sanitized user input would be nice:
     // http://trac.symfony-project.com/ticket/3486
     $arguments['path'] = realpath($arguments['path']);
     $phpcs = new PHP_CodeSniffer();
     $finder = new SvnFinder();
     foreach ($finder->in($arguments['path']) as $path) {
         $config = $this->getConfigForPath($path);
         if (!isset($config['code']['standard']) && !isset($config['preamble']) && !isset($config['props'])) {
             continue;
         }
         // HACK: It is not easy to modify a file's token listeners after it is
         // constructed, so construct a populated file if the code standard is
         // defined, and an empty file otherwise
         if (isset($config['code']['standard'])) {
             // HACK: PHP_CodeSniffer_File now expects an array of
             // PHP_CodeSniffer_Sniff instances, which
             // PHP_CodeSniffer::getTokenListeners() does not return
             $processPhpcs = new PHP_CodeSniffer();
             $processPhpcs->process(array(), $config['code']['standard']);
             $listeners = $processPhpcs->getTokenSniffs();
             $phpcsFile = new PHP_CodeSniffer_File($path, $listeners['file'], $phpcs->allowedFileExtensions);
             $phpcsFile->start();
         } else {
             $phpcsFile = new PHP_CodeSniffer_File($path, array(), $phpcs->allowedFileExtensions);
         }
         if (isset($config['preamble'])) {
         }
         if (isset($config['props'])) {
             $props = $this->getPropsFromPath($path);
             foreach ($props + $config['props'] as $key => $value) {
                 if (isset($props[$key]) && !isset($config['props'][$key])) {
                     $phpcsFile->addError('SVN property "' . $key . '" = "' . $props[$key] . '" found but not expected', 0);
                     continue;
                 }
                 if (!isset($props[$key]) && isset($config['props'][$key])) {
                     $phpcsFile->addError('SVN property "' . $key . '" = "' . $config['props'][$key] . '" expected but not found', 0);
                     continue;
                 }
                 if ($props[$key] != $config['props'][$key]) {
                     $phpcsFile->addError('SVN property "' . $key . '" = "' . $props[$key] . '" expected to match "' . $config['props'][$key] . '"', 0);
                 }
             }
         }
         $phpcs->addFile($phpcsFile);
     }
     $phpcs->printErrorReport();
 }