Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル
/ /

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

項目一覧

  • 定義
  • パラメーター
  • 動作

バージョン1.18の新機能

MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()

バケットのエイリアスを登録します。これにより、基本的なファイル名string (例: gridfs://<bucket-alias>/<filename> )。

function registerGlobalStreamWrapperAlias(string $alias): void
$alias : 配列
gridfs://ストリーム ラッパーを使用してファイルにアクセスするときに GridFS バケットを識別するために使用される空でないstring 。

バケットのエイリアスを登録すると、 gridfs://<bucket-alias>/<filename>形式のファイル名 string を使用して、ファイルの最新のリビジョニングにアクセスできます。

サポートされているストリーム関数:

  • copy()

  • file_exists()

  • file_get_contents()

  • file_ put_contents()

  • filemtime()

  • filesize()

  • file()

  • fopen() "r"、"rb"、"w"、および "wb" モード

  • rename()

  • unlink()

読み取りモードでは、ストリーム コンテキストに読み取り対象ファイルのリビルド番号を指定するオプションgridfs['revision']を含めることができます。 省略した場合は、最新のリビジョニングが読み取られます(リ-1 )。

書込みモードでは、ストリーム コンテキストにオプションgridfs['chunkSizeBytes']を含めることができます。 省略した場合、デフォルトはBucketインスタンス オプションから継承されます。

関数renameunlinkは、ファイル名のすべての変更を名前変更または削除します。 ファイル名が存在しない場合、これらの関数はFileNotFoundExceptionをスローします。

次の例では、GridFS バケットのエイリアスを登録し、関数file_exists()file_get_contents()file_put_contents()を使用してバケットの読み取りと書込みを行う方法を示します。

これらの関数を呼び出すたびに、サーバーにリクエストが行われます。

<?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');

出力は次のようになります。

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

ストリーム コンテキストを使用すると、読み込むファイルのリビルド番号を指定できます。 省略した場合は、最新のリビジョニングが読み取られます。

<?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);

出力は次のようになります。

Hello, GridFS! (v0)

戻る

openUploadStream()