= 0 && strpos($haystack, $needle, $temp) !== false); } function listFolderFiles($dir, $extension) { $files = []; $ffs = scandir($dir); foreach ($ffs as $ff) { if ($ff !== '.' && $ff !== '..') { if (is_dir($dir . '/' . $ff)) { $files = array_merge($files, listFolderFiles($dir . '/' . $ff, $extension)); } else { if (endsWith($ff, $extension)) { $files[] = $dir . '/' . $ff; } } } } return $files; } // PHP tests $base = __DIR__ . '/../../phpOMS'; $files = listFolderFiles($base, '.php'); $testBase = __DIR__ . '/../../Tests/PHPUnit/Framework'; foreach ($files as $file) { $file = str_replace($base, '', $file); $subdir = trim($file, '/'); $split = explode('.', $file); $testPath = $testBase . '/' . $split[0] . 'Test.' . $split[1]; if (stripos($subdir, 'Interface') === false && stripos($subdir, 'Trait') === false && stripos($subdir, 'Abstract') === false ) { if (!file_exists($testPath)) { $namespace = str_replace('/', '\\', $split[0]); $namespace = explode('\\', $namespace); $classnameSrc = $namespace[count($namespace) - 1]; $classname = $classnameSrc . 'Test'; unset($namespace[count($namespace) - 1]); $use = trim('phpOMS\\' . trim(implode('\\', $namespace), '\\') . '\\' . $classnameSrc, '\\'); $namespace = trim('Tests\PHPUnit\Framework\\' . trim(implode('\\', $namespace), '\\'), '\\'); $autoloader = str_repeat('/..', count(explode('\\', $namespace))); if (!file_exists(dirname($testPath))) { mkdir(dirname($testPath), 0777, true); } file_put_contents($testPath, '