/** * guessSubmenus * * @param string $inflection * * @return array */ protected function findViewMenus($inflection = self::PLURAL) { $inflector = StringInflector::getInstance(); $viewFolder = ADMIN_ROOT . '/View'; $views = Filesystem::folders($viewFolder); $menus = array(); /** @var \SplFileInfo $view */ foreach ($views as $view) { if ($view->isFile()) { continue; } $name = strtolower($view->getBasename()); if ($inflection == static::PLURAL && $inflector->isPlural($name)) { $menus[] = $name; } elseif ($inflection == static::SINGULAR && $inflector->isSingular($name)) { $menus[] = $name; } } return $menus; }
/** * Get folder iterator of all paths * * @param boolean $recursive True to resursive. * * @return \AppendIterator Iterator only include dirs. */ public function getFolders($recursive = false) { return $this->appendIterator(function ($path) use($recursive) { return Filesystem::folders((string) $path, $recursive); }); }
/** * folders * * @param string $path * @param boolean $recursive * @param integer $pathType * * @return array */ public static function folders($path, $recursive = false, $pathType = self::PATH_ABSOLUTE) { $files = array(); /** @var $file \SplFileInfo */ foreach (Filesystem::folders($path, $recursive) as $file) { switch ($pathType) { case $pathType === self::PATH_BASENAME: $name = $file->getBasename(); break; case $pathType === static::PATH_RELATIVE: $pathLength = strlen($path); $name = $file->getRealPath(); $name = trim(substr($name, $pathLength), DIRECTORY_SEPARATOR); break; case $pathType === static::PATH_ABSOLUTE: default: $name = $file->getPathname(); break; } $files[] = $name; } return $files; }
/** * Get folder iterator of current dir. * * @param boolean $recursive True to resursive. * * @return \CallbackFilterIterator Iterator only include dirs. */ public function getFolders($recursive = false) { return Filesystem::folders((string) $this, $recursive); }
/** * Method to test folders(). * * @return void * * @covers Windwalker\Filesystem\Filesystem::folders */ public function testFolders() { $folders = Filesystem::folders(static::$dest . '/folder1', true, true); $this->assertEquals(FilesystemTestHelper::cleanPaths(array(static::$dest . '/folder1/level2')), FilesystemTestHelper::cleanPaths($folders)); // Recursive $folders = Filesystem::folders(static::$dest, true, true); $compare = FilesystemTestHelper::getFoldersRecursive('dest'); $this->assertEquals(FilesystemTestHelper::cleanPaths($compare), FilesystemTestHelper::cleanPaths($folders)); // Iterator $folders = Filesystem::folders(static::$dest, true); $this->assertInstanceOf('CallbackFilterIterator', $folders); $folders2 = Filesystem::iteratorToArray($folders); $this->assertEquals(FilesystemTestHelper::cleanPaths($compare), FilesystemTestHelper::cleanPaths($folders2)); $folders->rewind(); $this->assertInstanceOf('SplFileinfo', $folders->current()); }