basilicom / flysystem-pdo
Flysystem v3 对 PDO 的适配器
v1.1.1
2023-02-13 11:52 UTC
Requires
- php: 8.0.* || 8.1.* || 8.2.*
- ext-pdo: *
- league/flysystem: ^3.0
- thecodingmachine/safe: ^2.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- league/flysystem-adapter-test-utilities: ^3.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.16.1
- vimeo/psalm: ^4.9
README
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