Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Directory.php

class Directory

Same name in this branch
  1. 11.1.x vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php \SebastianBergmann\CodeCoverage\Report\Html\Directory
  2. 11.1.x vendor/phpunit/php-code-coverage/src/Report/Xml/Directory.php \SebastianBergmann\CodeCoverage\Report\Xml\Directory
  3. 11.1.x vendor/phpunit/phpunit/src/TextUI/Configuration/Value/Directory.php \PHPUnit\TextUI\Configuration\Directory

@internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage

@psalm-import-type LinesOfCodeType from \SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser

Hierarchy

  • class \SebastianBergmann\CodeCoverage\Node\AbstractNode implements \Countable
    • class \SebastianBergmann\CodeCoverage\Node\Directory extends \SebastianBergmann\CodeCoverage\Node\AbstractNode implements \IteratorAggregate

Expanded class hierarchy of Directory

6 files declare their use of Directory
CodeCoverage.php in vendor/phpunit/php-code-coverage/src/CodeCoverage.php
Dashboard.php in vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php
Directory.php in vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php
Facade.php in vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php
Facade.php in vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php

... See full list

10 string references to 'Directory'
CreateProjectCommand::execute in vendor/composer/composer/src/Composer/Command/CreateProjectCommand.php
Executes the current command.
DirectoryLoader::load in vendor/symfony/routing/Loader/DirectoryLoader.php
DirectoryLoader::supports in vendor/symfony/routing/Loader/DirectoryLoader.php
DirectoryLoader::supports in vendor/symfony/dependency-injection/Loader/DirectoryLoader.php
file.schema.yml in core/modules/file/config/schema/file.schema.yml
core/modules/file/config/schema/file.schema.yml

... See full list

File

vendor/phpunit/php-code-coverage/src/Node/Directory.php, line 22

Namespace

SebastianBergmann\CodeCoverage\Node
View source
final class Directory extends AbstractNode implements IteratorAggregate {
    
    /**
     * @var list<AbstractNode>
     */
    private array $children = [];
    
    /**
     * @var list<Directory>
     */
    private array $directories = [];
    
    /**
     * @var list<File>
     */
    private array $files = [];
    private ?array $classes = null;
    private ?array $traits = null;
    private ?array $functions = null;
    
    /**
     * @psalm-var null|LinesOfCodeType
     */
    private ?array $linesOfCode = null;
    private int $numFiles = -1;
    private int $numExecutableLines = -1;
    private int $numExecutedLines = -1;
    private int $numExecutableBranches = -1;
    private int $numExecutedBranches = -1;
    private int $numExecutablePaths = -1;
    private int $numExecutedPaths = -1;
    private int $numClasses = -1;
    private int $numTestedClasses = -1;
    private int $numTraits = -1;
    private int $numTestedTraits = -1;
    private int $numMethods = -1;
    private int $numTestedMethods = -1;
    private int $numFunctions = -1;
    private int $numTestedFunctions = -1;
    public function count() : int {
        if ($this->numFiles === -1) {
            $this->numFiles = 0;
            foreach ($this->children as $child) {
                $this->numFiles += count($child);
            }
        }
        return $this->numFiles;
    }
    public function getIterator() : RecursiveIteratorIterator {
        return new RecursiveIteratorIterator(new Iterator($this), RecursiveIteratorIterator::SELF_FIRST);
    }
    public function addDirectory(string $name) : self {
        $directory = new self($name, $this);
        $this->children[] = $directory;
        $this->directories[] =& $this->children[count($this->children) - 1];
        return $directory;
    }
    public function addFile(File $file) : void {
        $this->children[] = $file;
        $this->files[] =& $this->children[count($this->children) - 1];
        $this->numExecutableLines = -1;
        $this->numExecutedLines = -1;
    }
    public function directories() : array {
        return $this->directories;
    }
    public function files() : array {
        return $this->files;
    }
    public function children() : array {
        return $this->children;
    }
    public function classes() : array {
        if ($this->classes === null) {
            $this->classes = [];
            foreach ($this->children as $child) {
                $this->classes = array_merge($this->classes, $child->classes());
            }
        }
        return $this->classes;
    }
    public function traits() : array {
        if ($this->traits === null) {
            $this->traits = [];
            foreach ($this->children as $child) {
                $this->traits = array_merge($this->traits, $child->traits());
            }
        }
        return $this->traits;
    }
    public function functions() : array {
        if ($this->functions === null) {
            $this->functions = [];
            foreach ($this->children as $child) {
                $this->functions = array_merge($this->functions, $child->functions());
            }
        }
        return $this->functions;
    }
    
    /**
     * @psalm-return LinesOfCodeType
     */
    public function linesOfCode() : array {
        if ($this->linesOfCode === null) {
            $this->linesOfCode = [
                'linesOfCode' => 0,
                'commentLinesOfCode' => 0,
                'nonCommentLinesOfCode' => 0,
            ];
            foreach ($this->children as $child) {
                $childLinesOfCode = $child->linesOfCode();
                $this->linesOfCode['linesOfCode'] += $childLinesOfCode['linesOfCode'];
                $this->linesOfCode['commentLinesOfCode'] += $childLinesOfCode['commentLinesOfCode'];
                $this->linesOfCode['nonCommentLinesOfCode'] += $childLinesOfCode['nonCommentLinesOfCode'];
            }
        }
        return $this->linesOfCode;
    }
    public function numberOfExecutableLines() : int {
        if ($this->numExecutableLines === -1) {
            $this->numExecutableLines = 0;
            foreach ($this->children as $child) {
                $this->numExecutableLines += $child->numberOfExecutableLines();
            }
        }
        return $this->numExecutableLines;
    }
    public function numberOfExecutedLines() : int {
        if ($this->numExecutedLines === -1) {
            $this->numExecutedLines = 0;
            foreach ($this->children as $child) {
                $this->numExecutedLines += $child->numberOfExecutedLines();
            }
        }
        return $this->numExecutedLines;
    }
    public function numberOfExecutableBranches() : int {
        if ($this->numExecutableBranches === -1) {
            $this->numExecutableBranches = 0;
            foreach ($this->children as $child) {
                $this->numExecutableBranches += $child->numberOfExecutableBranches();
            }
        }
        return $this->numExecutableBranches;
    }
    public function numberOfExecutedBranches() : int {
        if ($this->numExecutedBranches === -1) {
            $this->numExecutedBranches = 0;
            foreach ($this->children as $child) {
                $this->numExecutedBranches += $child->numberOfExecutedBranches();
            }
        }
        return $this->numExecutedBranches;
    }
    public function numberOfExecutablePaths() : int {
        if ($this->numExecutablePaths === -1) {
            $this->numExecutablePaths = 0;
            foreach ($this->children as $child) {
                $this->numExecutablePaths += $child->numberOfExecutablePaths();
            }
        }
        return $this->numExecutablePaths;
    }
    public function numberOfExecutedPaths() : int {
        if ($this->numExecutedPaths === -1) {
            $this->numExecutedPaths = 0;
            foreach ($this->children as $child) {
                $this->numExecutedPaths += $child->numberOfExecutedPaths();
            }
        }
        return $this->numExecutedPaths;
    }
    public function numberOfClasses() : int {
        if ($this->numClasses === -1) {
            $this->numClasses = 0;
            foreach ($this->children as $child) {
                $this->numClasses += $child->numberOfClasses();
            }
        }
        return $this->numClasses;
    }
    public function numberOfTestedClasses() : int {
        if ($this->numTestedClasses === -1) {
            $this->numTestedClasses = 0;
            foreach ($this->children as $child) {
                $this->numTestedClasses += $child->numberOfTestedClasses();
            }
        }
        return $this->numTestedClasses;
    }
    public function numberOfTraits() : int {
        if ($this->numTraits === -1) {
            $this->numTraits = 0;
            foreach ($this->children as $child) {
                $this->numTraits += $child->numberOfTraits();
            }
        }
        return $this->numTraits;
    }
    public function numberOfTestedTraits() : int {
        if ($this->numTestedTraits === -1) {
            $this->numTestedTraits = 0;
            foreach ($this->children as $child) {
                $this->numTestedTraits += $child->numberOfTestedTraits();
            }
        }
        return $this->numTestedTraits;
    }
    public function numberOfMethods() : int {
        if ($this->numMethods === -1) {
            $this->numMethods = 0;
            foreach ($this->children as $child) {
                $this->numMethods += $child->numberOfMethods();
            }
        }
        return $this->numMethods;
    }
    public function numberOfTestedMethods() : int {
        if ($this->numTestedMethods === -1) {
            $this->numTestedMethods = 0;
            foreach ($this->children as $child) {
                $this->numTestedMethods += $child->numberOfTestedMethods();
            }
        }
        return $this->numTestedMethods;
    }
    public function numberOfFunctions() : int {
        if ($this->numFunctions === -1) {
            $this->numFunctions = 0;
            foreach ($this->children as $child) {
                $this->numFunctions += $child->numberOfFunctions();
            }
        }
        return $this->numFunctions;
    }
    public function numberOfTestedFunctions() : int {
        if ($this->numTestedFunctions === -1) {
            $this->numTestedFunctions = 0;
            foreach ($this->children as $child) {
                $this->numTestedFunctions += $child->numberOfTestedFunctions();
            }
        }
        return $this->numTestedFunctions;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
AbstractNode::$id private property
AbstractNode::$name private property
AbstractNode::$parent private property
AbstractNode::$pathAsArray private property
AbstractNode::$pathAsString private property
AbstractNode::classesAndTraits public function
AbstractNode::id public function
AbstractNode::name public function
AbstractNode::numberOfClassesAndTraits public function
AbstractNode::numberOfFunctionsAndMethods public function
AbstractNode::numberOfTestedClassesAndTraits public function
AbstractNode::numberOfTestedFunctionsAndMethods public function
AbstractNode::parent public function
AbstractNode::pathAsArray public function
AbstractNode::pathAsString public function
AbstractNode::percentageOfExecutedBranches public function
AbstractNode::percentageOfExecutedLines public function
AbstractNode::percentageOfExecutedPaths public function
AbstractNode::percentageOfTestedClasses public function
AbstractNode::percentageOfTestedClassesAndTraits public function
AbstractNode::percentageOfTestedFunctions public function
AbstractNode::percentageOfTestedFunctionsAndMethods public function
AbstractNode::percentageOfTestedMethods public function
AbstractNode::percentageOfTestedTraits public function
AbstractNode::processId private function
AbstractNode::processPath private function
AbstractNode::__construct public function 1
Directory::$children private property
Directory::$classes private property
Directory::$directories private property
Directory::$files private property
Directory::$functions private property
Directory::$linesOfCode private property @psalm-var null|LinesOfCodeType
Directory::$numClasses private property
Directory::$numExecutableBranches private property
Directory::$numExecutableLines private property
Directory::$numExecutablePaths private property
Directory::$numExecutedBranches private property
Directory::$numExecutedLines private property
Directory::$numExecutedPaths private property
Directory::$numFiles private property
Directory::$numFunctions private property
Directory::$numMethods private property
Directory::$numTestedClasses private property
Directory::$numTestedFunctions private property
Directory::$numTestedMethods private property
Directory::$numTestedTraits private property
Directory::$numTraits private property
Directory::$traits private property
Directory::addDirectory public function
Directory::addFile public function
Directory::children public function
Directory::classes public function @psalm-return array&lt;string, ProcessedClassType&gt; Overrides AbstractNode::classes
Directory::count public function
Directory::directories public function
Directory::files public function
Directory::functions public function @psalm-return array&lt;string, ProcessedFunctionType&gt; Overrides AbstractNode::functions
Directory::getIterator public function
Directory::linesOfCode public function @psalm-return LinesOfCodeType Overrides AbstractNode::linesOfCode
Directory::numberOfClasses public function Overrides AbstractNode::numberOfClasses
Directory::numberOfExecutableBranches public function Overrides AbstractNode::numberOfExecutableBranches
Directory::numberOfExecutableLines public function Overrides AbstractNode::numberOfExecutableLines
Directory::numberOfExecutablePaths public function Overrides AbstractNode::numberOfExecutablePaths
Directory::numberOfExecutedBranches public function Overrides AbstractNode::numberOfExecutedBranches
Directory::numberOfExecutedLines public function Overrides AbstractNode::numberOfExecutedLines
Directory::numberOfExecutedPaths public function Overrides AbstractNode::numberOfExecutedPaths
Directory::numberOfFunctions public function Overrides AbstractNode::numberOfFunctions
Directory::numberOfMethods public function Overrides AbstractNode::numberOfMethods
Directory::numberOfTestedClasses public function Overrides AbstractNode::numberOfTestedClasses
Directory::numberOfTestedFunctions public function Overrides AbstractNode::numberOfTestedFunctions
Directory::numberOfTestedMethods public function Overrides AbstractNode::numberOfTestedMethods
Directory::numberOfTestedTraits public function Overrides AbstractNode::numberOfTestedTraits
Directory::numberOfTraits public function Overrides AbstractNode::numberOfTraits
Directory::traits public function @psalm-return array&lt;string, ProcessedTraitType&gt; Overrides AbstractNode::traits

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal