MongoDBI::Application - MongoDBI Application Class and Document Class Controller
version 0.0.6
package CDDB; use MongoDBI; app { # shared mongodb connection database => { name => 'mongodbi_cddb', host => 'mongodb://localhost:27017' }, # load child doc classes classes => { self => 1 # loads CDDB::* } }; 1;
MongoDBI::Application is used to load and configure associated document classes. It is essentially the application hub (or starting-point). Because all MongoDBI document classes can have their own database configuration, and thus need to be setup individually, MongoDBI::Application can be used to bring those individual classes together to form a single application.
MongoDBI::Application exports the app() method which allows you to configure your application having the configuration applied to all associated document classes. MongoDBI::Application will also load all associated classes and make them available through the class() method after instantiation.
Modeling your database schema will involve learning how models are crafted using MongoDBI::Document, please read that documentation towards getting started. Enjoy!!!
The app method will be exported into the calling class allowing it to configure all associated document classes. MongoDBI::Document classes are designed so that each class may use a different database connection for greater flexibility, however there are times when you will want/need all of your application's document classes to share a single database connection and MongoDBI::Application allows you to do that. MongoDBI::Application can also preload specified classes.
The following examples are recognized parameters the app() method uses to configure your application.
# share mongodb connection across all document classes app { # shared mongodb connection # accepts all parameters MongoDB::Connection does database => { name => 'mongodbi_cddb', host => 'mongodb://localhost:27017' } }; # load desired document classes app { classes => { self => 1, # loads all classes under the current namespace load => [ 'Other::Classes', 'More::Classes', ] } };
The config attribute gives you access to the MongoDBI::Application class configuration although it is likely you will never need to used it as the important elements are all exposed via methods.
my $app = App->new; $app->config;
The class method returns the class (string, uninstantiated) for the associated document class registered by the app() method. The class method accepts a class short-name and returns the fully-qualified class name.
my $app = App->new; # base class name under same namespace not required (e.g. app_*) my $foo = $app->class('foo'); # returns App::Foo; my $bar = $app->class('bar_baz'); # returns App::BarBaz; # must specify the base class name on foreign classes my $xyz = $app->class('app2_xyz'); # returns App2::XYZ; # if you're a stickler for convention, # you can also use case-appropriate syntax my $foo = $app->class('Foo'); # returns App::Foo; my $bar = $app->class('BarBaz'); # returns App::BarBaz;
Al Newkirk <awncorp@cpan.org>
This software is copyright (c) 2011 by awncorp.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install MongoDBI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MongoDBI
CPAN shell
perl -MCPAN -e shell install MongoDBI
For more information on module installation, please visit the detailed CPAN module installation guide.