當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Cache::getFolderContents方法代碼示例

本文整理匯總了PHP中OC\Files\Cache\Cache::getFolderContents方法的典型用法代碼示例。如果您正苦於以下問題:PHP Cache::getFolderContents方法的具體用法?PHP Cache::getFolderContents怎麽用?PHP Cache::getFolderContents使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在OC\Files\Cache\Cache的用法示例。


在下文中一共展示了Cache::getFolderContents方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: testWithNormalizer

 /**
  * this test shows that there is no bug if we use the normalizer
  */
 public function testWithNormalizer()
 {
     if (!class_exists('Patchwork\\PHP\\Shim\\Normalizer')) {
         $this->markTestSkipped('The 3rdparty Normalizer extension is not available.');
         return;
     }
     // folder name "Schön" with U+00F6 (normalized)
     $folderWith00F6 = "Schön";
     // folder name "Schön" with U+0308 (un-normalized)
     $folderWith0308 = "Schön";
     $data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory');
     // put root folder
     $this->assertFalse($this->cache->get('folder'));
     $this->assertGreaterThan(0, $this->cache->put('folder', $data));
     // put un-normalized folder
     $this->assertFalse($this->cache->get('folder/' . $folderWith0308));
     $this->assertGreaterThan(0, $this->cache->put('folder/' . $folderWith0308, $data));
     // get un-normalized folder by name
     $unNormalizedFolderName = $this->cache->get('folder/' . $folderWith0308);
     // check if folder name was normalized
     $this->assertEquals($folderWith00F6, $unNormalizedFolderName['name']);
     // put normalized folder
     $this->assertTrue(is_array($this->cache->get('folder/' . $folderWith00F6)));
     $this->assertGreaterThan(0, $this->cache->put('folder/' . $folderWith00F6, $data));
     // at this point we should have only one folder named "Schön"
     $this->assertEquals(1, count($this->cache->getFolderContents('folder')));
 }
開發者ID:Romua1d,項目名稱:core,代碼行數:30,代碼來源:cache.php

示例2: getFolderContents

 public function getFolderContents($path)
 {
     $content = parent::getFolderContents($path);
     foreach ($content as &$data) {
         $data['permissions'] &= \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE;
     }
     return $content;
 }
開發者ID:samj1912,項目名稱:repo,代碼行數:8,代碼來源:readonlycache.php

示例3: cleanFolder

 /**
  * remove deleted files in $path from the cache
  *
  * @param string $path
  */
 public function cleanFolder($path)
 {
     $cachedContent = $this->cache->getFolderContents($path);
     foreach ($cachedContent as $entry) {
         if (!$this->storage->file_exists($entry['path'])) {
             $this->cache->remove($entry['path']);
         }
     }
 }
開發者ID:rchicoli,項目名稱:owncloud-core,代碼行數:14,代碼來源:Watcher.php

示例4: getExistingChildren

 protected function getExistingChildren($path)
 {
     $existingChildren = array();
     if ($this->cache->inCache($path)) {
         $children = $this->cache->getFolderContents($path);
         foreach ($children as $child) {
             $existingChildren[] = $child['name'];
         }
     }
     return $existingChildren;
 }
開發者ID:kebenxiaoming,項目名稱:owncloudRedis,代碼行數:11,代碼來源:scanner.php

示例5: scanChildren

 /**
  * scan all the files and folders in a folder
  *
  * @param string $path
  * @param bool $recursive
  * @param int $reuse
  * @return int the size of the scanned folder or -1 if the size is unknown at this stage
  */
 public function scanChildren($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1)
 {
     if ($reuse === -1) {
         $reuse = $recursive === self::SCAN_SHALLOW ? self::REUSE_ETAG | self::REUSE_SIZE : 0;
     }
     $this->emit('\\OC\\Files\\Cache\\Scanner', 'scanFolder', array($path, $this->storageId));
     $size = 0;
     $childQueue = array();
     $existingChildren = array();
     if ($this->cache->inCache($path)) {
         $children = $this->cache->getFolderContents($path);
         foreach ($children as $child) {
             $existingChildren[] = $child['name'];
         }
     }
     $newChildren = array();
     if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) {
         $exceptionOccurred = false;
         \OC_DB::beginTransaction();
         if (is_resource($dh)) {
             while (($file = readdir($dh)) !== false) {
                 $child = $path ? $path . '/' . $file : $file;
                 if (!Filesystem::isIgnoredDir($file)) {
                     $newChildren[] = $file;
                     try {
                         $data = $this->scanFile($child, $reuse, true);
                         if ($data) {
                             if ($data['size'] === -1) {
                                 if ($recursive === self::SCAN_RECURSIVE) {
                                     $childQueue[] = $child;
                                 } else {
                                     $size = -1;
                                 }
                             } else {
                                 if ($size !== -1) {
                                     $size += $data['size'];
                                 }
                             }
                         }
                     } catch (\Doctrine\DBAL\DBALException $ex) {
                         // might happen if inserting duplicate while a scanning
                         // process is running in parallel
                         // log and ignore
                         \OC_Log::write('core', 'Exception while scanning file "' . $child . '": ' . $ex->getMessage(), \OC_Log::DEBUG);
                         $exceptionOccurred = true;
                     }
                 }
             }
         }
         $removedChildren = \array_diff($existingChildren, $newChildren);
         foreach ($removedChildren as $childName) {
             $child = $path ? $path . '/' . $childName : $childName;
             $this->cache->remove($child);
         }
         \OC_DB::commit();
         if ($exceptionOccurred) {
             // It might happen that the parallel scan process has already
             // inserted mimetypes but those weren't available yet inside the transaction
             // To make sure to have the updated mime types in such cases,
             // we reload them here
             $this->cache->loadMimetypes();
         }
         foreach ($childQueue as $child) {
             $childSize = $this->scanChildren($child, self::SCAN_RECURSIVE, $reuse);
             if ($childSize === -1) {
                 $size = -1;
             } else {
                 $size += $childSize;
             }
         }
         $this->cache->put($path, array('size' => $size));
     }
     $this->emit('\\OC\\Files\\Cache\\Scanner', 'postScanFolder', array($path, $this->storageId));
     return $size;
 }
開發者ID:omusico,項目名稱:isle-web-framework,代碼行數:83,代碼來源:scanner.php


注:本文中的OC\Files\Cache\Cache::getFolderContents方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。