=pod =encoding utf8 =head1 NAME Mojolicious::Plugin::CHI - Use CHI Caches in Mojolicious =head1 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'); =head1 DESCRIPTION L is a simple plugin to work with L caches within Mojolicious. =head1 METHODS =head2 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 L objects. All cache handles are qualified L namespaces. You can omit this mapping by passing a C parameter with a C value. The handles have to be unique, i.e. you can't have multiple different C caches in mounted applications using L. Logging defaults to the application log, but can be overridden using L and L. All parameters can be set as part of the configuration file with the key C or on registration (that can be overwritten by configuration). Use custom CHI subclasses by passing a C parameter with the class name of a CHI subclass. =head1 HELPERS =head2 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 L handle if registered. Accepts the name of the registered cache. If no cache handle name is given, a cache handle name C is assumed. =head1 COMMANDS The following commands are available when the plugin is registered. =head2 chi list perl app.pl chi list List all CHI caches associated with your application. =head2 chi purge perl app.pl chi purge mycache Remove all expired entries from the cache namespace. =head2 chi clear perl app.pl chi clear mycache Remove all entries from the cache namespace. =head2 chi expire perl app.pl chi expire mykey perl app.pl chi expire mycache mykey Set the expiration date of a key to the past. This does not necessarily delete the data, but makes it unavailable using C. =head2 chi remove perl app.pl chi remove mykey perl app.pl chi remove mycache mykey Remove a key from the cache. =head1 DEPENDENCIES L, L. B Old versions of L had a lot of dependencies. It was thus not recommended to use this plugin in a CGI environment. Since new versions of CHI use L instead of L, more use cases may be possible. =head1 CONTRIBUTORS L L L L =head1 AVAILABILITY https://github.com/Akron/Mojolicious-Plugin-CHI =head1 COPYRIGHT AND LICENSE Copyright (C) 2012-2018, L. This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0. =cut