---
name: "Catalyst::TraitFor::Model::DBIC::Schema::Caching"
section: "3pm"
platform: "linux"
package: "libcatalyst-model-dbic-schema-perl"
version: "0.66-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::TraitFor::Model::DBIC::Schema::Caching"
---

# Catalyst::TraitFor::Model::DBIC::Schema::Caching(3pm)

Query caching support for Catalyst::Model::DBIC::Schema

## NAME

Catalyst::TraitFor::Model::DBIC::Schema::Caching - Query caching support for Catalyst::Model::DBIC::Schema

## SYNOPSIS

```
    __PACKAGE__->config({
        traits => ['Caching'],
        connect_info =>
            ['dbi:mysql:db', 'user', 'pass'],
    });
    $c->model('DB::Table')->search({ foo => 'bar' }, { cache_for => 18000 });
```

## DESCRIPTION

Enable caching support using DBIx::Class::Cursor::Cached and Catalyst::Plugin::Cache.

In order for this to work, Catalyst::Plugin::Cache must be configured and loaded. A possible configuration would look like this:

```
  <Plugin::Cache>
    <backend>
      class Cache::FastMmap
      unlink_on_exit 1
      share_file /tmp/myapp_share
    </backend>
  </Plugin::Cache>
```

Then in your queries, set the `"cache_for"` ResultSet attribute to the number of seconds you want the query results to be cached for, eg.:

```
  $c->model('DB::Table')->search({ foo => 'bar' }, { cache_for => 18000 });
```

## CONFIG PARAMETERS

### caching

Turn caching on or off, you can use:

```
    $c->model('DB')->caching(0);
```

## SEE ALSO

Catalyst::Model::DBIC::Schema, DBIx::Class, Catalyst::Plugin::Cache, Cache::FastMmap, DBIx::Class::Cursor::Cached

## AUTHOR

See "AUTHOR" in Catalyst::Model::DBIC::Schema and "CONTRIBUTORS" in Catalyst::Model::DBIC::Schema.

## COPYRIGHT

See "COPYRIGHT" in Catalyst::Model::DBIC::Schema.

## LICENSE

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
