Search by

marko / database-readwrite

markshust

Read/write connection splitting for the Marko Framework database layer

Package info

github.com/marko-php/marko-database-readwrite

pkg:composer/marko/database-readwrite

Statistics

Installs: 7

Dependents: 0

Suggesters: 1

Stars: 0

0.11.0 2026-10-06 13:35 UTC

This package is auto-updated.

Last update: 2026-10-06 15:42:24 UTC


README

Routes reads to replicas, writes to primary --- drop-in decorator for any Marko database driver.

Installation

composer require marko/database-readwrite

Quick Example

<?php

declare(strict_types=1);

use Marko\Config\Env;

return [
    'driver' => 'readwrite',
    'connections' => [
        'write' => [
            'driver'   => 'pgsql',
            'host'     => Env::string('DB_WRITE_HOST', 'localhost'),
            'port'     => Env::int('DB_WRITE_PORT', 5432, min: 1, max: 65535),
            'database' => Env::string('DB_DATABASE', 'marko'),
            'username' => Env::string('DB_USERNAME', 'postgres'),
            'password' => Env::string('DB_PASSWORD', ''),
        ],
        'read' => [
            [
                'driver'   => 'pgsql',
                'host'     => Env::string('DB_READ_HOST', 'replica-1'),
                'port'     => Env::int('DB_READ_PORT', 5432, min: 1, max: 65535),
                'database' => Env::string('DB_DATABASE', 'marko'),
                'username' => Env::string('DB_USERNAME', 'postgres'),
                'password' => Env::string('DB_PASSWORD', ''),
            ],
        ],
        'read_strategy' => 'random',
    ],
];

Documentation

Full usage, configuration, API reference, and examples: marko/database-readwrite