The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Plugin::CHI - Use CHI Caches in Mojolicious

SYNOPSIS

  # Mojolicious
  $app->plugin(CHI => {
    MyCache => {
      driver     => 'FastMmap',
      root_dir   => '/cache',
      cache_size => '20m'
    }
  });

  # Mojolicious::Lite
  plugin 'CHI' => {
    default => {
      driver => 'Memory',
      global => 1
    }
  };

  # In Controllers:
  $c->chi('MyCache')->set(my_key => 'This is my value');
  print $c->chi('MyCache')->get('my_key');

  # Using the default cache
  $c->chi->set(from_memory => 'With love!');
  print $c->chi->get('from_memory');

DESCRIPTION

Mojolicious::Plugin::CHI is a simple plugin to work with CHI caches within Mojolicious.

METHODS

register

  # Mojolicious
  $app->plugin(CHI => {
    MyCache => {
      driver     => 'FastMmap',
      root_dir   => '/cache',
      cache_size => '20m'
    },
    default => {
      driver => 'Memory',
      global => 1
    },
    namespaces => 1
  });

  # Mojolicious::Lite
  plugin 'CHI' => {
    default => { driver => 'Memory', global => 1 }
  };

  # Or in your config file
  {
    CHI => {
      default => {
        driver => 'Memory',
        global => 1
      }
    }
  }

Called when registering the plugin. On creation, the plugin accepts a hash of cache names associated with CHI objects.

All cache handles are qualified CHI namespaces. You can omit this mapping by passing a namespaces parameter with a false value.

The handles have to be unique, i.e. you can't have multiple different default caches in mounted applications using Mojolicious::Plugin::Mount.

All parameters can be set either on registration or as part of the configuration file with the key CHI.

HELPERS

chi

  # In Controllers:
  $c->chi('MyCache')->set(my_key => 'This is my value', '10 min');
  print $c->chi('MyCache')->get('my_key');
  print $c->chi->get('from_default_cache');

Returns a CHI handle if registered. Accepts the name of the registered cache. If no cache handle name is given, a cache handle name default is assumed.

DEPENDENCIES

Mojolicious, CHI.

Note: Old versions of CHI had a lot of dependencies. It was thus not recommended to use this plugin in a CGI environment. Since new versions of CHI use Moo instead of Moose, more use cases may be possible.

CONTRIBUTORS

Boris Däppen

Renée Bäcker

AVAILABILITY

  https://github.com/Akron/Mojolicious-Plugin-CHI

COPYRIGHT AND LICENSE

Copyright (C) 2012-2014, Nils Diewald.

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.