src Loading last commit info...
.gitignore
README.md
composer.json
composer.lock
driver.php
README.md

CouchDB Driver for Kipchak

This driver is based on the symfony/cache from the Symfony Framework.

It is used to interact with CouchDB databases.

Composer Package

kipchak/driver-memcached

Driver Name

cache.memcached.__pool_name__

Sample Config File:

This config file should be placed in your Kipchak project's config directory, as in the starter project at https://1x.ax/mamluk/kipchak/starter/~files/master/config and must be named kipchak.memcached.php.

<?php

use function Mamluk\Kipchak\env;

return [
    'enabled' => true,
    'pools' => [
        'cache1' => [
            [
                'host' => env('MEMCACHED_HOST', 'memcached'),
                'port' => env('MEMCACHED_PORT', 11211),
            ]
        ],
        'cache2' => [
            [
                'host' => env('MEMCACHED_HOST', 'memcached'),
                'port' => env('MEMCACHED_PORT', 11211),
            ]
        ]
    ],
    // Please see https://www.php.net/manual/en/memcached.constants.php for more details.
    // You can specify options for the Memcached PECL below and Kipchak will apply them as it bootstraps to the appropriate pool.
    'pools_options' => [
        'cache1' => [
            Memcached::OPT_PREFIX_KEY => '',
            Memcached::OPT_CONNECT_TIMEOUT => 1000, // millisconeds
            Memcached::OPT_RETRY_TIMEOUT => 1, // seconds
            Memcached::OPT_POLL_TIMEOUT => 1000, // milliseconds
            Memcached::OPT_SERVER_FAILURE_LIMIT => 3,
            Memcached::OPT_REMOVE_FAILED_SERVERS => true,
            Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT
        ],
        'cache2' => [
            Memcached::OPT_PREFIX_KEY => '',
            Memcached::OPT_CONNECT_TIMEOUT => 1000, // millisconeds
            Memcached::OPT_RETRY_TIMEOUT => 1, // seconds
            Memcached::OPT_POLL_TIMEOUT => 1000, // milliseconds
            Memcached::OPT_SERVER_FAILURE_LIMIT => 3,
            Memcached::OPT_REMOVE_FAILED_SERVERS => true,
            Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT
        ],
    ]
];

How to use it?

Install it via composer: composer require kipchak/driver-memcached.

The dependency name of this driver is cache.memcached.__pool_name__.

Example Usage

$mc = $this->container->get('cache.memcached.cache1');
// Use the Memcached ($mc) client as you normally would.

See the methods available in the client here: https://symfony.com/doc/current/components/cache.html

What is a Kipchak Driver?

Kipchak Drivers are used to connect Kipchak to various data sources or storage systems.

They provide a standardized interface for interacting with different data sources, allowing developers to focus on building their applications rather than dealing with the complexities of each data source.

Drivers were introduced as a part of the Kipchak 2.0 release.

Drivers are basically Slim Dependencies injected into Kipchak's Service Container.

How do Kipchak Drivers work?

Kipchak drivers are wired into the Service Container via a config file.

Each driver has a pre-defined dependency name which may be sufficed with a config property, for instance, in the case of multiple database connections or S3 buckets.

So you may access the driver by invoking $this->container->get('database.couchdb.default'), wheredatabase.couchdb.is the name of the driver and thedefault` is the name of the connection specifiedin the config file.

Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover