%PDF- %PDF-
| Direktori : /home/bitrix/www/local/php_interface/lib/vendor/kreait/firebase-php/src/Firebase/ |
| Current File : //home/bitrix/www/local/php_interface/lib/vendor/kreait/firebase-php/src/Firebase/Storage.php |
<?php
declare(strict_types=1);
namespace Kreait\Firebase;
use Google\Cloud\Storage\Bucket;
use Google\Cloud\Storage\StorageClient;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemInterface;
use Superbalist\Flysystem\GoogleStorage\GoogleStorageAdapter;
class Storage
{
/**
* @var StorageClient
*/
private $storageClient;
/**
* @var string
*/
private $defaultBucket;
/**
* @var Bucket[]
*/
private $buckets = [];
/**
* @var FilesystemInterface[]
*/
private $filesystems = [];
public function __construct(StorageClient $storageClient, string $defaultBucket)
{
$this->storageClient = $storageClient;
$this->defaultBucket = $defaultBucket;
}
public function getStorageClient(): StorageClient
{
return $this->storageClient;
}
public function getBucket(string $name = null): Bucket
{
$name = $name ?: $this->defaultBucket;
if (!array_key_exists($name, $this->buckets)) {
$this->buckets[$name] = $this->storageClient->bucket($name);
}
return $this->buckets[$name];
}
public function getFilesystem(string $bucketName = null): FilesystemInterface
{
$bucket = $this->getBucket($bucketName);
if (!array_key_exists($name = $bucket->name(), $this->filesystems)) {
$adapter = new GoogleStorageAdapter($this->storageClient, $bucket);
$this->filesystems[$name] = new Filesystem($adapter);
}
return $this->filesystems[$name];
}
}