ファイル ストレージに Hyperf フレームワークを使用するには、特定のコード サンプルが必要です
Hyperf は、Swoole 拡張機能に基づいて開発された、コルーチン、依存関係注入を備えた高性能 PHP フレームワークです。 , AOP、ミドルウェア、イベント管理などの強力な機能は、高性能、柔軟、スケーラブルな Web アプリケーションやマイクロサービスの構築に適しています。
実際のプロジェクトでは、ファイルの保存と管理が必要になることがよくありますが、Hyperf フレームワークには、ファイル ストレージの操作を簡素化するための便利なコンポーネントとツールが用意されています。この記事では、ファイル ストレージに Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。
1. 依存関係をインストールする
まず、必要な依存関係を Hyperf プロジェクトにインストールする必要があります。ターミナルを開き、プロジェクトのルート ディレクトリに切り替えて、次のコマンドを実行します:
composer require hyperf/filesystem
2. ファイル システムの構成
Hyperf フレームワーク内hyperf/filesystem
コンポーネントを使用してファイル ストレージを実装できます。まず、ファイル システムを構成する必要があります。 config/autoload/filesystem.php
ファイルに、次のコードを追加します。
return [ 'default' => 'local', 'disks' => [ // 本地文件系统 'local' => [ 'driver' => 'local', 'root' => 'runtime/files', ], // 其他文件系统配置... ], ];
上記の構成では、driver
パラメータを使用して、ファイルのタイプを指定します。ファイル システム。ここでは local
を選択しました。これは、ローカル ファイル システムを使用することを意味します。 root
パラメータは、ファイルが保存されるルート ディレクトリを指定します。ここでは、runtime/files
を選択します。実際の状況に応じて変更できます。
3. ファイル システムの使用
設定が完了したら、ファイル ストレージとしてファイル システムを使用できます。 Hyperf フレームワークでは、依存関係注入を通じてファイル システムを使用できます。まず、ファイル システムを使用する必要があるクラスに次のコードを追加します:
use HyperfFilesystemFilesystemFactory;
次に、ファイル システムをクラスのコンストラクターに挿入します:
protected $filesystem; public function __construct(FilesystemFactory $filesystemFactory) { $this->filesystem = $filesystemFactory->get('local'); }
上記のコードでは、 pass FilesystemFactory
クラスは、local
という名前のファイル システム インスタンスを取得します。
4. ファイル ストレージ
実際のアプリケーションでは、通常、ユーザーがアップロードしたファイルをファイル システムに保存する必要があります。以下は、Hyperf フレームワークを使用してファイルをローカル ファイル システムに保存する方法を示す例です。
use HyperfHttpServerAnnotationAutoController; use HyperfHttpServerAnnotationMiddleware; use HyperfHttpServerContractRequestInterface; use HyperfHttpServerContractResponseInterface; use HyperfUtilsContext; use HyperfFilesystemFilesystemFactory; /** * Class FileController * @package AppController * @AutoController() * @Middleware(JwtAuthMiddleware::class) */ class FileController extends AbstractController { protected $filesystem; public function __construct(FilesystemFactory $filesystemFactory) { $this->filesystem = $filesystemFactory->get('local'); } public function upload(RequestInterface $request, ResponseInterface $response) { // 获取上传的文件对象 $file = $request->file('file'); // 判断文件是否上传成功 if ($file->isValid()) { // 获取文件名 $fileName = $file->getClientOriginalName(); // 生成文件保存路径 $filePath = 'upload/' . date('Y/m/d/') . uniqid() . '_' . $fileName; // 使用文件系统保存文件 $this->filesystem->put($filePath, file_get_contents($file->getRealPath())); // 返回文件路径等信息给前端 return ['code' => 0, 'msg' => '上传成功', 'data' => ['path' => $filePath]]; } else { // 文件上传失败 return ['code' => 1, 'msg' => '文件上传失败']; } } // 其他文件操作... }
上記のコードでは、upload
メソッドは RequestInterface# を受け取ります。 ## オブジェクトと
ResponseInterface オブジェクトの場合、
$request->file('file') メソッドを通じてアップロードされたファイル オブジェクトを取得します。次に、ファイル オブジェクト メソッドを通じてファイル名、ファイル サイズ、その他の情報を取得し、ファイル システム
$this->filesystem の
put メソッドを使用して、ファイル システム内のファイル。
以上がファイルストレージに Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。