2017 © Pedro Peláez
 

library flysystem-pdo-adapter

PDO adapter for Flysystem file abstraction layer

image

integral/flysystem-pdo-adapter

PDO adapter for Flysystem file abstraction layer

  • Tuesday, June 5, 2018
  • by zaak
  • Repository
  • 1 Watchers
  • 6 Stars
  • 1,142 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 6 Forks
  • 1 Open issues
  • 4 Versions
  • 23 % Grown

The README.md

Flysystem PDO Database Adapter

Build Status License, (*1)

PDO database adapter for Flysystem filesystem abstraction. No additional dependencies, only PDO extension required., (*2)

Installation

composer require integral/flysystem-pdo-adapter

Database Configuration

At the beginning you have to create a table that will be used to store files., (*3)

SQL table schema examples for MySQL, SQLite and PostgreSQL are presented below., (*4)

MySQL, (*5)

CREATE TABLE files (
  id int(11) NOT NULL AUTO_INCREMENT,
  path varchar(255) NOT NULL,
  type enum('file','dir') NOT NULL,
  contents longblob,
  size int(11) NOT NULL DEFAULT 0,
  mimetype varchar(127),
  timestamp int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (id),
  UNIQUE KEY path_unique (path)
);

SQLite, (*6)

CREATE TABLE files (
    id INTEGER PRIMARY KEY,
    path TEXT NOT NULL UNIQUE,
    type TEXT NOT NULL,
    contents BLOB,
    size INTEGER NOT NULL DEFAULT 0,
    mimetype TEXT,
    timestamp INTEGER NOT NULL DEFAULT 0
)

PostgreSQL, (*7)

CREATE TABLE public.files (
  id serial NOT NULL,
  path varchar(255) NOT NULL,
  type varchar(4) NOT NULL,
  contents bytea,
  size integer NOT NULL DEFAULT 0,
  mimetype varchar(127),
  "timestamp" integer NOT NULL DEFAULT 0,
  is_compressed boolean NOT NULL DEFAULT true,
  update_ts timestamp(0) with time zone DEFAULT NOW(),
  CONSTRAINT files_pkey PRIMARY KEY (id),
  CONSTRAINT type_check CHECK (type='dir' or type='file'),
  CONSTRAINT path_unique UNIQUE (path)
);

Usage

Create an adapter by passing a valid PDO object and table name as constructor arguments:, (*8)

MySQL, (*9)

// http://php.net/manual/pl/ref.pdo-mysql.connection.php
$pdo = new PDO('mysql:host=hostname;dbname=database_name', 'username', 'password');
$adapter = new PDOAdapter($pdo, 'files');

SQLite, (*10)

// http://php.net/manual/pl/ref.pdo-sqlite.connection.php
$pdo = new PDO('sqlite:/absolute/path/to/database.sqlite');
$adapter = new PDOAdapter($pdo, 'files');

PostgreSQL, (*11)

// http://php.net/manual/pl/ref.pdo-pgsql.php
$pdo = new PDO('pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass');
$adapter = new PDOAdapter($pdo, 'public.files');

Then simply pass the created adapter to \League\Flysystem\Filesystem:, (*12)

$filesystem = new Filesystem($adapter);

Done! At this point the $filesystem is ready to use., (*13)

Note

This implementation emulates a tree structured filesystem, therefore some of the operations (like renaming or deleting a folder) produce quite a lot of database queries, which may result in a poor performance for some scenarios., (*14)

The Versions

05/06 2018

dev-master

9999999-dev

PDO adapter for Flysystem file abstraction layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Pawel Wiaderny

05/06 2018

1.0.2

1.0.2.0

PDO adapter for Flysystem file abstraction layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Pawel Wiaderny

28/04 2017

1.0.1

1.0.1.0

PDO adapter for Flysystem file abstraction layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Pawel Wiaderny

22/11 2015

1.0.0

1.0.0.0

PDO adapter for Flysystem file abstraction layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Pawel Wiaderny