ILIAS  release_8 Revision v8.19-1-g4e8f2f9140c
All Data Structures Namespaces Files Functions Variables Modules Pages
ilServicesQTISuite.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
23 
24 require_once __DIR__ . '/bootstrap.php';
25 
30 {
31  public static function suite(): self
32  {
33  $suite = new self();
34 
35  $dir = __DIR__;
36  $classes = [];
37 
38  $files = new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
39  $files = new RecursiveIteratorIterator($files, RecursiveIteratorIterator::LEAVES_ONLY);
40  $files = new RegExIterator($files, '/\.php$/');
41 
42  foreach ($files as $file) {
43  $file = $file->getPathname();
44  $className = preg_replace(['@^.*/@', '/^class./', '/\.php$/'], '', $file);
45  require_once $file;
46  $classes[] = $className;
47  }
48  array_map([$suite, 'addTestSuite'], array_filter(array_filter($classes, 'class_exists'), [self::class, 'notSelf']));
49 
50  return $suite;
51  }
52 
53  private static function notSelf(string $className): bool
54  {
55  return self::class !== $className;
56  }
57 }
static notSelf(string $className)