# phpman > man > DBD::Gofer::Policy::Base(3pm)

## NAME
    [DBD::Gofer::Policy::Base](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer%3A%3APolicy%3A%3ABase/markdown) - Base class for [DBD::Gofer](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer/markdown) policies

## SYNOPSIS
      $dbh = DBI->connect("dbi:Gofer:transport=...;policy=...", ...)

## DESCRIPTION
    [DBD::Gofer](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer/markdown) can be configured via a 'policy' mechanism that allows you to fine-tune the number of
    round-trips to the Gofer server. The policies are grouped into classes (which may be subclassed)
    and referenced by the name of the class.

    The [DBD::Gofer::Policy::Base](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer%3A%3APolicy%3A%3ABase/markdown) class is the base class for all the policy classes and describes
    all the individual policy items.

    The Base policy is not used directly. You should use a policy class derived from it.

## POLICY CLASSES
    Three policy classes are supplied with [DBD::Gofer](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer/markdown):

    [DBD::Gofer::Policy::pedantic](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer%3A%3APolicy%3A%3Apedantic/markdown) is most 'transparent' but slowest because it makes more round-trips
    to the Gofer server.

    [DBD::Gofer::Policy::classic](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer%3A%3APolicy%3A%3Aclassic/markdown) is a reasonable compromise - it's the default policy.

    [DBD::Gofer::Policy::rush](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer%3A%3APolicy%3A%3Arush/markdown) is fastest, but may require code changes in your applications.

    Generally the default "classic" policy is fine. When first testing an existing application with
    Gofer it is a good idea to start with the "pedantic" policy first and then switch to "classic"
    or a custom policy, for final testing.

## POLICY ITEMS
    These are temporary docs: See the source code for list of policies and their defaults.

    In a future version the policies and their defaults will be defined in the pod and parsed out at
    load-time.

    See the source code to this module for more details.

## POLICY CUSTOMIZATION
    XXX This area of [DBD::Gofer](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer/markdown) is subject to change.

    There are three ways to customize policies:

    Policy classes are designed to influence the overall behaviour of [DBD::Gofer](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer/markdown) with existing,
    unaltered programs, so they work in a reasonably optimal way without requiring code changes. You
    can implement new policy classes as subclasses of existing policies.

    In many cases individual policy items can be overridden on a case-by-case basis within your
    application code. You do this by passing a corresponding "<go_<policy_name">> attribute into DBI
    methods by your application code. This lets you fine-tune the behaviour for special cases.

    The policy items are implemented as methods. In many cases the methods are passed parameters
    relating to the [DBD::Gofer](https://www.chedong.com/phpMan.php/perldoc/DBD%3A%3AGofer/markdown) code being executed. This means the policy can implement dynamic
    behaviour that varies depending on the particular circumstances, such as the particular
    statement being executed.

## AUTHOR
    Tim Bunce, <<http://www.tim.bunce.name>>

## LICENCE AND COPYRIGHT
    Copyright (c) 2007, Tim Bunce, Ireland. All rights reserved.

    This module is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself. See perlartistic.

