mirror of
https://github.com/nextcloud/server.git
synced 2026-06-12 10:10:49 -04:00
type hint as generator
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
5b77099612
commit
a6f245f6ff
1 changed files with 14 additions and 9 deletions
|
|
@ -85,7 +85,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
protected $root;
|
||||
|
||||
/**
|
||||
* @var \Icewind\SMB\IFileInfo[]
|
||||
* @var IFileInfo[]
|
||||
*/
|
||||
protected $statCache;
|
||||
|
||||
|
|
@ -180,20 +180,24 @@ class SMB extends Common implements INotifyStorage {
|
|||
|
||||
/**
|
||||
* @param string $path
|
||||
* @return \Icewind\SMB\IFileInfo
|
||||
* @return IFileInfo
|
||||
* @throws StorageAuthException
|
||||
*/
|
||||
protected function getFileInfo($path) {
|
||||
try {
|
||||
$path = $this->buildPath($path);
|
||||
if (!isset($this->statCache[$path])) {
|
||||
$this->statCache[$path] = $this->share->stat($path);
|
||||
$cached = $this->statCache[$path] ?? null;
|
||||
if ($cached instanceof IFileInfo) {
|
||||
return $cached;
|
||||
} else {
|
||||
$stat = $this->share->stat($path);
|
||||
$this->statCache[$path] = $stat;
|
||||
return $stat;
|
||||
}
|
||||
return $this->statCache[$path];
|
||||
} catch (ConnectException $e) {
|
||||
$this->throwUnavailable($e);
|
||||
} catch (ForbiddenException $e) {
|
||||
// with php-smbclient, this exceptions is thrown when the provided password is invalid.
|
||||
// with php-smbclient, this exception is thrown when the provided password is invalid.
|
||||
// Possible is also ForbiddenException with a different error code, so we check it.
|
||||
if ($e->getCode() === 1) {
|
||||
$this->throwUnavailable($e);
|
||||
|
|
@ -204,6 +208,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
|
||||
/**
|
||||
* @param \Exception $e
|
||||
* @return never
|
||||
* @throws StorageAuthException
|
||||
*/
|
||||
protected function throwUnavailable(\Exception $e) {
|
||||
|
|
@ -231,7 +236,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
|
||||
/**
|
||||
* @param string $path
|
||||
* @return \Icewind\SMB\IFileInfo[]
|
||||
* @return \Generator<IFileInfo>
|
||||
* @throws StorageNotAvailableException
|
||||
*/
|
||||
protected function getFolderContents($path): iterable {
|
||||
|
|
@ -284,7 +289,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param \Icewind\SMB\IFileInfo $info
|
||||
* @param IFileInfo $info
|
||||
* @return array
|
||||
*/
|
||||
protected function formatInfo($info) {
|
||||
|
|
@ -616,7 +621,7 @@ class SMB extends Common implements INotifyStorage {
|
|||
return false;
|
||||
}
|
||||
$names = array_map(function ($info) {
|
||||
/** @var \Icewind\SMB\IFileInfo $info */
|
||||
/** @var IFileInfo $info */
|
||||
return $info->getName();
|
||||
}, iterator_to_array($files));
|
||||
return IteratorDirectory::wrap($names);
|
||||
|
|
|
|||
Loading…
Reference in a new issue