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.
<?php

declare(strict_types=1);

namespace Phpml\Dataset;

use Phpml\Exception\DatasetException;

class FilesDataset extends ArrayDataset
{
    public function __construct(string $rootPath)
    {
        if (!is_dir($rootPath)) {
            throw new DatasetException(sprintf('Dataset root folder "%s" missing.', $rootPath));
        }

        $this->scanRootPath($rootPath);
    }

    private function scanRootPath(string $rootPath): void
    {
< foreach (glob($rootPath.DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR) as $dir) {
> $dirs = glob($rootPath.DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR); > > if ($dirs === false) { > throw new DatasetException(sprintf('An error occurred during directory "%s" scan', $rootPath)); > } > > foreach ($dirs as $dir) {
$this->scanDir($dir); } } private function scanDir(string $dir): void { $target = basename($dir);
< foreach (array_filter(glob($dir.DIRECTORY_SEPARATOR.'*'), 'is_file') as $file) {
> $files = glob($dir.DIRECTORY_SEPARATOR.'*'); > if ($files === false) { > return; > } > > foreach (array_filter($files, 'is_file') as $file) {
$this->samples[] = file_get_contents($file); $this->targets[] = $target; } } }