for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace Phpmetrix\Console;
final class CliInput
{
/** @var string[] */
private $dirs;
private $excludePaths;
/**
* File extensions
*
* @var string[]
*/
private $exts;
* @param string[] $dirs
public function __construct(array $dirs, ?string $exclude = null, ?string $ext = null)
$this->dirs = $dirs;
$this->excludePaths = [];
$paths = explode(',', $exclude ?? '');
foreach ($paths as $item) {
if (trim($item) === '') {
continue;
}
$this->excludePaths[] = trim($item);
$exts = explode(',', $ext ?? '');
foreach ($exts as $item) {
$this->exts[] = '*.' . ltrim(trim($item), '*.');
if (empty($this->exts)) {
$this->exts = ['*.php'];
/** @return string[] */
public function directories() : array
return $this->dirs;
public function excludePaths() : array
return $this->excludePaths;
public function filenames() : array
return $this->exts;