countTokenFromFile() public method

public countTokenFromFile ( $file )
コード例 #1
0
ファイル: Files.php プロジェクト: exakat/exakat
 public static function findFiles($path, &$files, &$ignoredFiles)
 {
     $config = Config::factory();
     $ignore_dirs = $config->ignore_dirs;
     $dir = $config->project;
     // Actually finding the files
     $ignoreDirs = array();
     foreach ($ignore_dirs as $ignore) {
         if ($ignore[0] == '/') {
             $d = $config->projects_root . '/projects/' . $dir . '/code' . $ignore;
             if (!file_exists($d)) {
                 continue;
             }
             $ignoreDirs[] = $ignore . '.*';
         } else {
             $ignoreDirs[] = '.*' . $ignore . '.*';
         }
     }
     if (empty($ignoreDirs)) {
         $regex = '';
     } else {
         $regex = '#^(' . implode('|', $ignoreDirs) . ')#';
     }
     $php = new Phpexec();
     $ignoredFiles = array();
     $d = getcwd();
     if (!file_exists($path)) {
         display("No such file as " . $path . " when looking for files\n");
         $files = array();
         $ignoredFiles = array();
         return;
     }
     chdir($path);
     $files = rglob('.');
     chdir($d);
     $exts = $config->file_extensions;
     foreach ($files as $id => &$file) {
         $file = substr($file, 1);
         $ext = pathinfo($file, PATHINFO_EXTENSION);
         if (empty($ext)) {
             // it's OK.
         } elseif (!in_array($ext, $exts)) {
             // selection of extensions
             unset($files[$id]);
             $ignoredFiles[$file] = "Ignored extension ({$ext})";
         } elseif (!empty($regex) && preg_match($regex, $file)) {
             // Matching the 'ignored dir' pattern
             unset($files[$id]);
             $ignoredFiles[$file] = 'Ignored dir';
         } elseif ($php->countTokenFromFile($path . $file) < 2) {
             unset($files[$id]);
             $ignoredFiles[$file] = 'Not a PHP File';
         }
     }
 }