bach-pedersen/laravel-riak

Riak providers for Riak Connection, Cache and Session

Installs: 343

Dependents: 4

Stars: 1

Watchers: 1

Forks: 2

Open Issues: 1

Language: PHP

1.1.3 2014-09-03 17:37 UTC

README

Build StatusScrutinizer Quality Score

Simple Riak provider for Laravel.

Requirements

This provider is built on top of php_riak so it of cause requires then php_riak extension to be installed.
Installation instructions can be found here http://phpriak.bachpedersen.dk/installation/

Installation

Add bach-pedersen/laravel-riak to your composer.json like this:

"require": {
    "bach-pedersen/laravel-riak": "1.1.0"
}

Configuration

Host and port name for Riak should be configured in your app/config/database.php like this:

/*
    |--------------------------------------------------------------------------
    | Riak Database
    |--------------------------------------------------------------------------
    */
    'riak' => array(
        'host' => 'localhost',
        'port' => 8087
    )

Remember php-riak uses riak protobuf interface and not the http interface, default port is 8087.

Also the service provider should be registered in your app/config/app.php file, like this:

/*
// File: app/config/app.php
'providers' => array(
        ...
        'BachPedersen\LaravelRiak\RiakServiceProvider',
),

Usage

To get a Riak\Connection, simply ask the app for the instance.

/** @var $riak \Riak\Connection */
$riak = $this->app['riak'];

// or
/** @var $riak \Riak\Connection */
$riak = App::make('riak');

Cache provider

There is also a caching provider included that can be activated if desired.
To activate the caching provider, make sure the normal Riak provider is configured like above, and then do the following:
1: Add provider in app

// File: app/config/app.php
'providers' => array(
        ...
        'BachPedersen\LaravelRiak\Cache\RiakCacheServiceProvider',
        ...
),

2: Change the default cache driver and set the name of the bucket where you want the cache to be stored, like this:

// File: app/config/cache.php
    ...
    'driver' => 'riak',
    'bucket' => 'laravel.cache',
    ...

Session provider

The session provider is built on top of the cache provider so both that and the regular riak provider should be added in app.php
Beside that the session provider should be added like this:

// File: app/config/app.php
'providers' => array(
        ...
        'BachPedersen\LaravelRiak\Session\RiakSessionServiceProvider',
),

And the same way as the cache provider the following settings should set in session.php

// File: app/config/session.php
    ...
    'driver' => 'riak',
    'bucket' => 'laravel.session',
    ...

Riak configuration

1: The session and cache provider uses secondary indicies which means riak must be configured with eleveldb backend.
See http://docs.basho.com/riak/latest/ops/advanced/backends/leveldb/ for more info.
2: Bucket properties for cache and session should have lastWriteWins=false and allowMult=false, there are commands included to do that automatically, just run cache:bucket:init and session:bucket:init and they will be set up correctly.

php artisan cache:bucket:init  
php artisan session:bucket:init  

Links

composer homepage: http://getcomposer.org/
php_riak pecl page: http://pecl.php.net/package/riak
php_riak source: https://github.com/TriKaspar/php_riak
php_riak documentation: http://phpriak.bachpedersen.dk/