<?php class wfScanEntrypoint { private $file; private $included; public function __construct($file, $included = false) { $this->file = $file; $this->included = $included; } public function getKey() { return $this->file->getRealPath(); } public function setIncluded($included = true) { $this->included = $included; return $this; } public function isIncluded() { return $this->included; } public function getFile() { return $this->file; } public function addTo(&$entrypoints) { $key = $this->getKey(); if (array_key_exists($key, $entrypoints)) { if ($this->isIncluded()) $entrypoints[$key]->setIncluded(); } else { $entrypoints[$key] = $this; } } public static function getScannedSkippedFiles($entrypoints) { $scanned = array(); $skipped = array(); foreach ($entrypoints as $entrypoint) { if ($entrypoint->isIncluded()) { $scanned[] = $entrypoint->getFile(); } else { $skipped[] = $entrypoint->getFile(); } } return array( 'scanned' => $scanned, 'skipped' => $skipped ); } }