GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Catalyst::TraitFor::Model::DBIC::Schema::SchemaProxy(3) User Contributed Perl Documentation Catalyst::TraitFor::Model::DBIC::Schema::SchemaProxy(3)

Catalyst::TraitFor::Model::DBIC::Schema::SchemaProxy - Proxy Schema Methods and Options from Model

Allows you to call your DBIx::Class::Schema methods directly on the Model instance, and passes config options to your DBIx::Class::Schema and DBIx::Class::ResultSet attributes at "BUILD" time.

Methods and attributes local to your "Model" take precedence over DBIx::Class::Schema or DBIx::Class::ResultSet methods and attributes.

To create attributes in your "Schema.pm", use either Moose or Class::Accessor::Grouped, which is inherited from by all DBIx::Class classes automatically. E.g.:

    __PACKAGE__->mk_group_accessors(simple => qw/
        config_key1
        config_key2
        ...
    /);

Or with Moose:

    use Moose;
    has config_key1 => (is => 'rw', default => 'default_value');

This code can be added after the md5sum on DBIx::Class::Schema::Loader generated schemas.

At app startup, any non-local options will be passed to these accessors, and can be accessed as usual via "$schema->config_key1".

These config values go into your "Model::DB" block, along with normal config values.

You can create classdata on DBIx::Class::ResultSet classes to hold values from Catalyst config.

The code for this looks something like this:

    package MySchema::ResultSet::Foo;

    use base 'DBIx::Class::ResultSet';

    __PACKAGE__->mk_group_accessors(inherited => qw/
        rs_config_key1
        rs_config_key2
        ...
    /);
    __PACKAGE__->rs_config_key1('default_value');

Or, if you prefer Moose:

    package MySchema::ResultSet::Foo;

    use Moose;
    use MooseX::NonMoose;
    use MooseX::ClassAttribute;
    extends 'DBIx::Class::ResultSet';

    sub BUILDARGS { $_[2] } # important

    class_has rs_config_key1 => (is => 'rw', default => 'default_value');

    ...

    __PACKAGE__->meta->make_immutable;

    1;

In your catalyst config, use the generated Model name as the config key, e.g.:

    <Model::DB::Users>
        strict_passwords 1
    </Model::DB::Users>

Catalyst::Model::DBIC::Schema, DBIx::Class::Schema

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

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

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
2012-08-14 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.