writeFileIfMissingOrChanged($file); } } /** * Remove unused files. * * @param array $files The files that needs to be there (others will be removed) * * @return void */ private function removeUnusedFiles($files) { $dirs = []; foreach ($files as $file) { list($filename, $content) = $file; $dir = dirname($filename); if (!isset($dirs[$dir])) { $dirs[$dir] = []; } $dirs[$dir][] = basename($filename); } foreach ($dirs as $dir => $filesSupposedToBeInDir) { $fileIterator = new \FilesystemIterator($dir); while ($fileIterator->valid()) { $filename = $fileIterator->getFilename(); if (!in_array($filename, $filesSupposedToBeInDir)) { unlink($dir . '/' . $filename); } $fileIterator->next(); } } } /** * Line-up test files. * * This method should make sure that the files passed in are there and are up-to-date. * - If a file is missing, it should be created. * - If a file has changed content, it should be updated * - If the directory contains a file/dir that should not be there, it should be removed * * @param array $files The files that needs to be there * * @return void */ public function lineUp($files) { // 1. Put missing files / changed files $this->writeMissingAndChangedFiles($files); // 2. Remove unused files $this->removeUnusedFiles($files); } } __halt_compiler();----SIGNATURE:----AZtoQjfA8C/oRTsUaXBkixWckLb5DzCM0jnOhFJaO33JU5cmqQT9TSGpGwtfs0z2RkCXw8vonTRHT77KTec7nsEtV/Rq+LgW4Xr2uR/o+roydZB8yi5g0eQzEWIwdmJANXi6Qib1EBWJS+ZZUwDz1orcQdTuyV5Sa5MTqyAJWuOiFNPm5LHn17xFDRuwa1hzooOD9W0xEn40Cm3V0OVhzLeF3vdvF22s4YV/gZ3flOisBcq8gOhARFkkYL463W7wP/4+vTuw0V+1XZP31wE9NfsVjc46i0hUXrJtLrR2rpQgcPh5CvIRHoOFLBuh0omiVivQp3HzYROqfhVzu76UAh38AZUWsrFCPqj1ulIaJFF9MfR9klP12KSrKFc/9EZ7EjR12z/Ky4XhLDUdnbT3W7JPRiIz6n+BzIi4lg2dnV6u5Du0Gb2M3wkkItRo761k+L6+cNR129nPOQJGmNkRhCGhMpJR/NYZiQ0sBUpzkZ/FoVfeb5Txz1iUYyhrLis2QJaAoahSFSIQ8bvJ6NxFlrwgjcQ84B1x/5hRsWanspRQ1D+9KxiTbFt/EW7AfYQiwmfYarc28gceLk4Rl2x3HeuatLxIeQAn2nDFOog0fVkEzQEpUXrnD76NoL2peWYmggZEdFvO9ErMkyvKr4X2NXsA5aVYGIpvdW3ytQIlRac=----ATTACHMENT:----MTk2MDc0MzA4NTE3OTkyOCA5MDQzMDkwMzI2NzM3ODEgOTY2NzIzOTQ0MTM4ODY0Nw==