コアポイント
プログラミング言語でファイルを読み書きすることは不可欠な側面ですが、基礎となる実装は大きく異なる場合があります。たとえば、ローカルファイルシステムへのデータの書き込みの詳細は、FTPを介したアップロードと比較して大きく異なりますが、概念的には非常に似ています。
FTPなどの確立されたテクノロジーとは別に、オンラインストレージはより一般的で安価になりつつあります。Dropbox、AmazonのS3、Rackspaceのクラウドファイルなど、多くのサービスがありますが、すべてがわずかに異なる読み取りを使用し、Enterメソッドを使用しています。これがフライシステムが登場する場所です。複数のファイルシステムに抽象化レイヤーを提供します。つまり、ファイルがどこにあるか、どのように保存されるか、または低レベルのI/O操作について心配する必要はありません。読み取り、書き込み、ディレクトリ組織などの高度な運用に焦点を当てる必要があります。
この抽象化は、多くのアプリケーションコードを書き換えることなく、あるシステムから別のシステムに切り替えるプロセスを簡素化することもできます。また、基礎となる実装を心配することなく、あるストレージシステムから別のストレージシステムにデータを移動またはコピーする方法も提供します。
ドロップボックス、S3、クラウドファイル、FTP、またはSFTPは、ローカルシステムと同じように同じプロセスになります。圧縮ファイル自体を作成してジッピングすることの詳細を心配することなく、Zip Compressedファイルを多数のフォルダーと考えることができます。
インストールと基本的な使用法
いつものように、作曲家はインストールするのに最適な方法です:
"league/flysystem": "0.2.*"
たとえば、
ローカルディレクトリを使用するには:
use League\Flysystem\Filesystem; use League\Flysystem\Adapter\Local as Adapter; $filesystem = new Filesystem(new Adapter('/path/to/directory'));
Dropboxを使用するには
:use Aws\S3\S3Client; use League\Flysystem\Adapter\AwsS3 as Adapter; $client = S3Client::factory(array( 'key' => '[您的密钥]', 'secret' => '[您的密钥]', )); $filesystem = new Filesystem(new Adapter($client, 'bucket-name', '可选前缀'));
(トークンとアプリケーション名を取得するには、Dropboxのアプリコンソールを使用してアプリケーションを作成します。)
use Dropbox\Client; use League\Flysystem\Adapter\Dropbox as Adapter; $client = new Client($token, $appName); $filesystem = new Filesystem(new Adapter($client, '可选/路径/前缀'));
"league/flysystem": "0.2.*"
通常のFTP、Predis、WebDavなどの他のアダプターについては、ドキュメントを参照してください。
ファイルシステムに読み取りと書き込み
アプリケーションコードの観点から、file_exists()
、fopen()
/fclose()
、fread
/fwrite
、mkdir()
たとえば、
フライシステムを使用すると、次のように見えるかもしれません:
use League\Flysystem\Filesystem; use League\Flysystem\Adapter\Local as Adapter; $filesystem = new Filesystem(new Adapter('/path/to/directory'));
「読み取り」と「書き込み」、「ローカル」、「リモート」などの用語を使用していることに注意してください。ファイルハンドルの作成と破壊を心配することなく、高度な抽象化を使用しています。
use Aws\S3\S3Client; use League\Flysystem\Adapter\AwsS3 as Adapter; $client = S3Client::factory(array( 'key' => '[您的密钥]', 'secret' => '[您的密钥]', )); $filesystem = new Filesystem(new Adapter($client, 'bucket-name', '可选前缀'));
以下は、LeagueFlySystemFilesystemクラスで最も重要な方法の要約です。
(同じパターンに応じて残りのコンテンツを書き換えてください。長さは長すぎて省略しています。)方法 | 示例 |
---|---|
读取 | $filesystem->read('filename.txt') |
写入 | $filesystem->write('filename.txt', $contents) |
更新 | $filesystem->update('filename.txt') |
写入或更新 | $filesystem->put('filename.txt') |
检查是否存在 | $filesystem->has('filename.txt') |
删除 | $filesystem->delete('filename.txt') |
重命名 | $filesystem->rename('old.txt', 'new.txt') |
读取文件 | $filesystem->read('filename.txt') |
获取文件信息 | $filesystem->getMimetype('filename.txt') |
$filesystem->getSize('filename.txt') |
|
$filesystem->getTimestamp('filename.txt') |
|
创建目录 | $filesystem->createDir('path/to/directory') |
删除目录 | $filesystem->deleteDir('path/to/directory') |
以上がフライシステムを備えた抽象ファイルシステムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。