basilicom/flysystem-pdo

Flysystem v3 对 PDO 的适配器

v1.1.1 2023-02-13 11:52 UTC

This package is auto-updated.

Last update: 2024-09-13 15:12:35 UTC


README

Psalm coverage Psalm level

A (非常简单的) Flysystem v3 对 PDO/MySQL 的适配器。基于 https://github.com/thephpleague/flysystem-memory 的实现。

安装

$ composer require basilicom/flysystem-pdo`

准备一个(MySQL)表

create table files (
	bucket varchar(32) not null default 'default',
	path varchar(255) not null,
	isFile tinyint not null default 1,
	mimeType varchar(64) not null default '',
	contents longblob not null,
	size int unsigned not null default 0,
	checksum varchar(256) not null,
	lastModified datetime,
	visibility varchar(64),
	PRIMARY KEY(bucket, path)
);

使用方法

use League\Flysystem\Filesystem;
use Basilicom\Flysystem\Pdo\PdoAdapter;

$pdo = new PDO('mysql:host=mysql;dbname=mydb', 'myuser', 'mypass');
$adapter = new \Basilicom\Flysystem\Pdo\PdoAdapter($pdo);

$flysystem = new Filesystem($adapter);

示例

$path = 'my/path/to/file.txt';
$contents = 'Lorem Ipsum';
$flysystem->write($path, $contents);

测试

此库使用了由 league/flysystem-adapter-test-utilities 提供的 FilesystemAdapterTestCase,因此它执行了需要真实 PDO 连接的集成测试。

要运行测试,提供一个具有 files 表模式的 MySQL 数据库,将 phpunit.xml.dist 文件复制到 phpunit.xml,并填写所有环境变量,然后运行

$ composer test

这将运行 PHP-CS-Fixer,[Psalm][3] 和 [PHPUnit][4],但您也可以单独运行它们,如下所示

$ composer phpcsfixer
$ composer psalm
$ composer phpunit