Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.

Differences Between: [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403]

   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace Phpml\Dataset;
   6  
   7  use Phpml\Exception\DatasetException;
   8  
   9  class FilesDataset extends ArrayDataset
  10  {
  11      public function __construct(string $rootPath)
  12      {
  13          if (!is_dir($rootPath)) {
  14              throw new DatasetException(sprintf('Dataset root folder "%s" missing.', $rootPath));
  15          }
  16  
  17          $this->scanRootPath($rootPath);
  18      }
  19  
  20      private function scanRootPath(string $rootPath): void
  21      {
  22          foreach (glob($rootPath.DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR) as $dir) {
  23              $this->scanDir($dir);
  24          }
  25      }
  26  
  27      private function scanDir(string $dir): void
  28      {
  29          $target = basename($dir);
  30  
  31          foreach (array_filter(glob($dir.DIRECTORY_SEPARATOR.'*'), 'is_file') as $file) {
  32              $this->samples[] = file_get_contents($file);
  33              $this->targets[] = $target;
  34          }
  35      }
  36  }