The League of Extraordinary Packages

Our Packages:

Presented by The League of Extraordinary Packages

Getting Started


PHPCR Adapter

This adapter works with any PHPCR implementation. Choose the one that fits your needs and add it to your project, or composer will complain that you miss phpcr/phpcr-implementation. See this article for more on choosing your implementation.


Assuming you go with jackalope-doctrine-dbal, do:

composer require jackalope/jackalope-doctrine-dbal league/flysystem-phpcr


Bootstrap your PHPCR implementation. If you chose jackalope-doctrine-dbal with sqlite, this will look like this for example:

use League\Flysystem\Filesystem;
use League\Flysystem\Phpcr\PhpcrAdapter;
use Jackalope\RepositoryFactoryDoctrineDBAL;
use Doctrine\DBAL\Driver\Connection;
use Doctrine\DBAL\DriverManager;

$connection = DriverManager::getConnection([
    'driver' => 'pdo_sqlite',
    'path'   => '/path/to/sqlite.db',
$factory = new RepositoryFactoryDoctrineDBAL();
$repository = $factory->getRepository([
    'jackalope.doctrine_dbal_connection' => $connection,
$session = $repository->login(new SimpleCredentials('', ''));

// this part looks the same regardless of your phpcr implementation.
$root = '/flysystem_tests';
$filesystem = new Filesystem(new PhpcrAdapter($session, $root));