public function testGlobRecursive() { $baseDir = dirname(__DIR__); $this->assertContains(Path::build($baseDir, 'composer.json'), Path::globRecursive($baseDir, '*.json')); $this->assertContains(Path::build($baseDir, 'phpunit.xml'), Path::globRecursive($baseDir, '*.xml')); $this->assertContains(Path::build($baseDir, 'src', 'Traits', 'ArrayAccessTrait.php'), Path::globRecursive($baseDir, '*.php')); }
/** * Match all files within a directory to a pattern recursive * * @param $baseDir * @param $pattern * @param int $flags * * @return array * * @deprecated */ function glob_recursive($baseDir, $pattern = '*', $flags = 0) { return \Packaged\Helpers\Path::globRecursive($baseDir, $pattern, $flags); }
<?php include_once dirname(dirname(__DIR__)) . '/vendor/autoload.php'; use Packaged\Helpers\Path; use Packaged\Helpers\Strings; $output = '<?php namespace Fortifi\\FortifiApi\\ActivityFeed\\Enums; class ActivityFeedStoryEnum { public static $storyTypes = [ '; $stories = Path::globRecursive(Path::build(__DIR__, 'Stories')); foreach ($stories as $story) { $story = str_replace(__DIR__ . '/Stories/', '', $story); //Skip Abstracts and Non Story Classes if (Strings::startsWithAny($story, ['Abstract']) || !Strings::endsWith($story, 'Story.php')) { continue; } $part = explode('/', $story); $storyClass = array_pop($part); $storyClass = str_replace('Story.php', '', $storyClass); $storyNs = 'Fortifi\\FortifiApi\\ActivityFeed\\Stories\\' . implode('\\', $part); $key = Strings::stringToUnderScore($storyClass); //Skip Interfaces if (substr($key, 0, 2) == 'i_') { continue; } $output .= " '{$key}' => '" . $storyNs . "\\" . $storyClass . "Story',\n"; } $output .= ' ];