.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Gantry::Plugins::DBIxClassConn 3" .TH Gantry::Plugins::DBIxClassConn 3 "2008-01-18" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Gantry::Plugins::DBIxClassConn \- DBIx::Class schema accessor mixin .SH "SYNOPSIS" .IX Header "SYNOPSIS" In any controller: .PP .Vb 5 \& use YourModel; \& use YourAuthModel; \& sub schema_base_class { return 'YourModel'; } \& sub schema_auth_base_class { return 'YourAuthModel'; } \& use Gantry::Plugins::DBIxClassConn; .Ve .PP .Vb 3 \& sub some_method { \& my $self = shift; \& #... .Ve .PP .Vb 1 \& my $schema = $self->get_schema; .Ve .PP .Vb 2 \& # Use $schema as instructed in DBIx::Class docs. \& } .Ve .PP .Vb 4 \& sub some_auth_method { \& my $self = shift; \& my $auth_schema = $self->get_auth_schema(); \& } .Ve .PP .Vb 1 \& package YourModel; .Ve .PP .Vb 3 \& sub get_db_options { \& return { AutoCommit => 1 }; # or whatever options you want \& } .Ve .PP .Vb 1 \& package YourAuthModel; .Ve .PP .Vb 3 \& sub get_db_options { \& return { AutoCommit => 1 }; # or whatever options you want \& } .Ve .PP Alternatively, in your controller which uses Gantry::Plugins::DBIxClassConn: .PP .Vb 2 \& sub some_method { \& my $self = shift; .Ve .PP .Vb 2 \& my @rows = $MY_TABLE->gsearch( $self, { ... }, { ... } ); \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This mixin gives you an accessor which returns the DBIx::Class schema object for your data model. It expects dbconn, dbuser, and dbpass to be in your site conf, so it can call fish config to get them. If you use get_auth_schema, it expects auth_dbconn, auth_dbuser and auth_dbpass to be in your site conf. .PP In order for this module to help you, your model (and/or auth model) must provide one helper: .IP "get_db_options" 4 .IX Item "get_db_options" This supplies the default \s-1DBI\s0 parameters to the connection method. This is usually sufficient: .Sp .Vb 1 \& sub get_db_options { return {}; } .Ve .Sp Note that the return value must be a hash reference. .PP If you model inherits from Gantry::Utils::DBIxClass, it will have a family of convenience methods meant to reduce typing. These are the same methods DBIx::Class makes available through resultsets, but with a couple of twists. First, the names of the methods have a g in front. Second, the g methods expect to be called as class methods on the model. Third, the g methods expect the Gantry site object as their first (non\-invoking) parameter. The rest of the parameters are the same as for the corresponding call via a \s-1DBIC\s0 resultset. .PP Note that for the g methods to work on the model, your site object must use this mixin. The g methods call get_schema. .SH "METHOD EXPORTED into YOUR PACKAGE" .IX Header "METHOD EXPORTED into YOUR PACKAGE" .IP "get_schema" 4 .IX Item "get_schema" Exported. .Sp Returns a DBIx::Class schema ready for use (if you set up your connection info in the right way, see Gantry::Docs::DBConn). .IP "get_auth_schema" 4 .IX Item "get_auth_schema" Exported. .Sp Returns a DBIx::Class schema ready for use (if you set up your connection info in the right way, see Gantry::Docs::DBConn). .SH "SEE ALSO" .IX Header "SEE ALSO" Gantry::Docs::DBConn, Gantry::Utils::ModelHelper, but only if you use a different \s-1ORM\s0 than DBIx::Class. .SH "AUTHOR" .IX Header "AUTHOR" Phil Crow .SH "COPYRIGHT and LICENSE" .IX Header "COPYRIGHT and LICENSE" Copyright (c) 2006, Phil Crow .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.