Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/ /

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Nesta página

  • Definição
  • Parâmetros
  • Comportamento
  • Exemplo

Novidades na versão 1.18.

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

Registra um alias para o bucket, que permite que os arquivos dentro do bucket sejam acessados usando uma string básica de nome de arquivo (por exemplo gridfs://<bucket-alias>/<filename>).

function registerGlobalStreamWrapperAlias(string $alias): void
$alias : array
Uma string não vazia usada para identificar o bucket GridFS ao acessar arquivos usando o stream wrapper gridfs:// .

Depois de registrar um alias para o bucket, a revisão mais recente de um arquivo pode ser acessada usando uma string de nome de arquivo no formato gridfs://<bucket-alias>/<filename>.

Funções de fluxo suportadas:

  • copy()

  • file_exists()

  • file_get_contents()

  • file_put_contents()

  • filemtime()

  • filesize()

  • arquivo()

  • fopen() com modos "r", "rb", "w" e "wb"

  • rename()

  • unlink()

No modo de leitura, o contexto do stream pode conter a opção gridfs['revision'] para especificar o número de revisão do arquivo a ser lido. Se omitido, a revisão mais recente é lida (revisão -1).

No modo de gravação, o contexto do fluxo pode conter a opção gridfs['chunkSizeBytes']. Se omitidos, os padrões são herdados da opção de instância Bucket .

As funções rename e unlink renomearão ou removerão todas as revisões de um nome de arquivo. Se o nome do arquivo não existir, estas funções lançarão um FileNotFoundException.

O exemplo a seguir demonstra como registrar um alias para um bucket GridFS e usar as funções file_exists(), file_get_contents() e file_put_contents() para ler e escrever no bucket.

Cada chamada para essas funções faz uma solicitação ao servidor.

<?php
$database = (new MongoDB\Client)->selectDatabase('test');
$bucket = $database->selectGridFSBucket();
$bucket->registerGlobalStreamWrapperAlias('mybucket');
var_dump(file_exists('gridfs://mybucket/hello.txt'));
file_put_contents('gridfs://mybucket/hello.txt', 'Hello, GridFS!');
var_dump(file_exists('gridfs://mybucket/hello.txt'));
echo file_get_contents('gridfs://mybucket/hello.txt');
unlink('gridfs://mybucket/hello.txt');

A saída seria então semelhante a:

bool(false)
bool(true)
Hello, GridFS!

Usando um contexto de fluxo, você pode especificar o número de revisão do arquivo a ser lido. Se omitido, a revisão mais recente é lida.

<?php
$database = (new MongoDB\Client)->selectDatabase('test');
$bucket = $database->selectGridFSBucket();
$bucket->registerGlobalStreamWrapperAlias('mybucket');
// Creating revision 0
$handle = fopen('gridfs://mybucket/hello.txt', 'w');
fwrite($handle, 'Hello, GridFS! (v0)');
fclose($handle);
// Creating revision 1
$handle = fopen('gridfs://mybucket/hello.txt', 'w');
fwrite($handle, 'Hello, GridFS! (v1)');
fclose($handle);
// Read revision 0
$context = stream_context_create([
'gridfs' => ['revision' => 0],
]);
$handle = fopen('gridfs://mybucket/hello.txt', 'r', false, $context);
echo fread($handle, 1024);

A saída seria então semelhante a:

Hello, GridFS! (v0)

Voltar

OpenUploadStream()