You are here

class PHP_CodeCoverage_Filter in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php \PHP_CodeCoverage_Filter

Filter for blacklisting and whitelisting of code coverage information.

@since Class available since Release 1.0.0

Hierarchy

Expanded class hierarchy of PHP_CodeCoverage_Filter

1 string reference to 'PHP_CodeCoverage_Filter'
PHP_CodeCoverageTest::testConstructor in vendor/phpunit/php-code-coverage/tests/PHP/CodeCoverageTest.php
@covers PHP_CodeCoverage::__construct @covers PHP_CodeCoverage::filter

File

vendor/phpunit/php-code-coverage/src/CodeCoverage/Filter.php, line 16

View source
class PHP_CodeCoverage_Filter {

  /**
   * Source files that are blacklisted.
   *
   * @var array
   */
  private $blacklistedFiles = array();

  /**
   * Source files that are whitelisted.
   *
   * @var array
   */
  private $whitelistedFiles = array();

  /**
   * Adds a directory to the blacklist (recursively).
   *
   * @param string $directory
   * @param string $suffix
   * @param string $prefix
   */
  public function addDirectoryToBlacklist($directory, $suffix = '.php', $prefix = '') {
    $facade = new File_Iterator_Facade();
    $files = $facade
      ->getFilesAsArray($directory, $suffix, $prefix);
    foreach ($files as $file) {
      $this
        ->addFileToBlacklist($file);
    }
  }

  /**
   * Adds a file to the blacklist.
   *
   * @param string $filename
   */
  public function addFileToBlacklist($filename) {
    $this->blacklistedFiles[realpath($filename)] = true;
  }

  /**
   * Adds files to the blacklist.
   *
   * @param array $files
   */
  public function addFilesToBlacklist(array $files) {
    foreach ($files as $file) {
      $this
        ->addFileToBlacklist($file);
    }
  }

  /**
   * Removes a directory from the blacklist (recursively).
   *
   * @param string $directory
   * @param string $suffix
   * @param string $prefix
   */
  public function removeDirectoryFromBlacklist($directory, $suffix = '.php', $prefix = '') {
    $facade = new File_Iterator_Facade();
    $files = $facade
      ->getFilesAsArray($directory, $suffix, $prefix);
    foreach ($files as $file) {
      $this
        ->removeFileFromBlacklist($file);
    }
  }

  /**
   * Removes a file from the blacklist.
   *
   * @param string $filename
   */
  public function removeFileFromBlacklist($filename) {
    $filename = realpath($filename);
    if (isset($this->blacklistedFiles[$filename])) {
      unset($this->blacklistedFiles[$filename]);
    }
  }

  /**
   * Adds a directory to the whitelist (recursively).
   *
   * @param string $directory
   * @param string $suffix
   * @param string $prefix
   */
  public function addDirectoryToWhitelist($directory, $suffix = '.php', $prefix = '') {
    $facade = new File_Iterator_Facade();
    $files = $facade
      ->getFilesAsArray($directory, $suffix, $prefix);
    foreach ($files as $file) {
      $this
        ->addFileToWhitelist($file);
    }
  }

  /**
   * Adds a file to the whitelist.
   *
   * @param string $filename
   */
  public function addFileToWhitelist($filename) {
    $this->whitelistedFiles[realpath($filename)] = true;
  }

  /**
   * Adds files to the whitelist.
   *
   * @param array $files
   */
  public function addFilesToWhitelist(array $files) {
    foreach ($files as $file) {
      $this
        ->addFileToWhitelist($file);
    }
  }

  /**
   * Removes a directory from the whitelist (recursively).
   *
   * @param string $directory
   * @param string $suffix
   * @param string $prefix
   */
  public function removeDirectoryFromWhitelist($directory, $suffix = '.php', $prefix = '') {
    $facade = new File_Iterator_Facade();
    $files = $facade
      ->getFilesAsArray($directory, $suffix, $prefix);
    foreach ($files as $file) {
      $this
        ->removeFileFromWhitelist($file);
    }
  }

  /**
   * Removes a file from the whitelist.
   *
   * @param string $filename
   */
  public function removeFileFromWhitelist($filename) {
    $filename = realpath($filename);
    if (isset($this->whitelistedFiles[$filename])) {
      unset($this->whitelistedFiles[$filename]);
    }
  }

  /**
   * Checks whether a filename is a real filename.
   *
   * @param  string $filename
   * @return bool
   */
  public function isFile($filename) {
    if ($filename == '-' || strpos($filename, 'vfs://') === 0 || strpos($filename, 'xdebug://debug-eval') !== false || strpos($filename, 'eval()\'d code') !== false || strpos($filename, 'runtime-created function') !== false || strpos($filename, 'runkit created function') !== false || strpos($filename, 'assert code') !== false || strpos($filename, 'regexp code') !== false) {
      return false;
    }
    return file_exists($filename);
  }

  /**
   * Checks whether or not a file is filtered.
   *
   * When the whitelist is empty (default), blacklisting is used.
   * When the whitelist is not empty, whitelisting is used.
   *
   * @param  string                     $filename
   * @return bool
   * @throws PHP_CodeCoverage_Exception
   */
  public function isFiltered($filename) {
    if (!$this
      ->isFile($filename)) {
      return true;
    }
    $filename = realpath($filename);
    if (!empty($this->whitelistedFiles)) {
      return !isset($this->whitelistedFiles[$filename]);
    }
    return isset($this->blacklistedFiles[$filename]);
  }

  /**
   * Returns the list of blacklisted files.
   *
   * @return array
   */
  public function getBlacklist() {
    return array_keys($this->blacklistedFiles);
  }

  /**
   * Returns the list of whitelisted files.
   *
   * @return array
   */
  public function getWhitelist() {
    return array_keys($this->whitelistedFiles);
  }

  /**
   * Returns whether this filter has a whitelist.
   *
   * @return bool
   * @since  Method available since Release 1.1.0
   */
  public function hasWhitelist() {
    return !empty($this->whitelistedFiles);
  }

  /**
   * Returns the blacklisted files.
   *
   * @return array
   * @since Method available since Release 2.0.0
   */
  public function getBlacklistedFiles() {
    return $this->blacklistedFiles;
  }

  /**
   * Sets the blacklisted files.
   *
   * @param array $blacklistedFiles
   * @since Method available since Release 2.0.0
   */
  public function setBlacklistedFiles($blacklistedFiles) {
    $this->blacklistedFiles = $blacklistedFiles;
  }

  /**
   * Returns the whitelisted files.
   *
   * @return array
   * @since Method available since Release 2.0.0
   */
  public function getWhitelistedFiles() {
    return $this->whitelistedFiles;
  }

  /**
   * Sets the whitelisted files.
   *
   * @param array $whitelistedFiles
   * @since Method available since Release 2.0.0
   */
  public function setWhitelistedFiles($whitelistedFiles) {
    $this->whitelistedFiles = $whitelistedFiles;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHP_CodeCoverage_Filter::$blacklistedFiles private property Source files that are blacklisted.
PHP_CodeCoverage_Filter::$whitelistedFiles private property Source files that are whitelisted.
PHP_CodeCoverage_Filter::addDirectoryToBlacklist public function Adds a directory to the blacklist (recursively).
PHP_CodeCoverage_Filter::addDirectoryToWhitelist public function Adds a directory to the whitelist (recursively).
PHP_CodeCoverage_Filter::addFilesToBlacklist public function Adds files to the blacklist.
PHP_CodeCoverage_Filter::addFilesToWhitelist public function Adds files to the whitelist.
PHP_CodeCoverage_Filter::addFileToBlacklist public function Adds a file to the blacklist.
PHP_CodeCoverage_Filter::addFileToWhitelist public function Adds a file to the whitelist.
PHP_CodeCoverage_Filter::getBlacklist public function Returns the list of blacklisted files.
PHP_CodeCoverage_Filter::getBlacklistedFiles public function Returns the blacklisted files.
PHP_CodeCoverage_Filter::getWhitelist public function Returns the list of whitelisted files.
PHP_CodeCoverage_Filter::getWhitelistedFiles public function Returns the whitelisted files.
PHP_CodeCoverage_Filter::hasWhitelist public function Returns whether this filter has a whitelist.
PHP_CodeCoverage_Filter::isFile public function Checks whether a filename is a real filename.
PHP_CodeCoverage_Filter::isFiltered public function Checks whether or not a file is filtered.
PHP_CodeCoverage_Filter::removeDirectoryFromBlacklist public function Removes a directory from the blacklist (recursively).
PHP_CodeCoverage_Filter::removeDirectoryFromWhitelist public function Removes a directory from the whitelist (recursively).
PHP_CodeCoverage_Filter::removeFileFromBlacklist public function Removes a file from the blacklist.
PHP_CodeCoverage_Filter::removeFileFromWhitelist public function Removes a file from the whitelist.
PHP_CodeCoverage_Filter::setBlacklistedFiles public function Sets the blacklisted files.
PHP_CodeCoverage_Filter::setWhitelistedFiles public function Sets the whitelisted files.