Esempio n. 1
0
 /**
  * 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);
     });
 }
Esempio n. 3
0
 /**
  * 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;
 }
Esempio n. 4
0
 /**
  * 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);
 }
Esempio n. 5
0
 /**
  * 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());
 }