DBIx::Class::ServiceManager - Load DBIx::Class::Service objects and create accessor for services.


DBIx-Class-Service documentation  | view source Contained in the DBIx-Class-Service distribution.

Index


NAME

Top

DBIx::Class::ServiceManager - Load DBIx::Class::Service objects and create accessor for services.

VERSION

Top

version 0.02

SYNOPSIS

Top

In your schema:

  package MySchema::Schema;

  use strict;
  use warnings;

  use base 'DBIx::Class::Schema';

  __PACKAGE__->load_classes;
  __PACKAGE__->load_components(qw/ServiceManager/);
  __PACKAGE__->load_services({ 'MySchema::Service' => [qw/
    User
  /] });

  1;

METHODS

Top

service($service_name)

Accessor for DBIx::Class::ServiceProxy classes. The access key is suffix of each service class name.

load_services(@args)

Load services from pair of class prefix and service class suffixes. Default prefix value is added "::Service" end of the service class name.

If the schema class called "MySchema::Schema", then the default prefix is "MySchema::Schema::Service".

ARRAY

The prefix is default. Each item in the array is service class suffix.

  package MySchema::Schema;

  use base 'DBIx::Class::Schema';

  __PACKAGE__->load_classes;
  __PACKAGE__->load_components(qw/ServiceManager/);

  __PACKAGE__->load_service(qw/User Diary/);
  ### Loads MySchame::Schema::Service::User, MySchame::Schema::Service::Diary

ARRAYREF

Same behavior as using ARRAY.

HASHREF

Use each keys of HASHREF as service class prefix. Each values must be ARRAYREF include class name suffixes.

  package MySchema::Schema;

  use base 'DBIx::Class::Schema';

  __PACKAGE__->load_classes;
  __PACKAGE__->load_components(qw/ServiceManager/);
  __PACKAGE__->load_services({ 'MySchema::Service' => [qw/
    User Diary
  /] });
  ### Loads MySchame::Service::User, MySchame::Service::Diary

register_service($base, $services)

Register service classes. (internal)

SEE ALSO

Top

DBIx::Class::Service
DBIx::Class::ServiceProxy

AUTHOR

Top

Toru Yamaguchi, <zigorou@cpan.org>

BUGS

Top

Please report any bugs or feature requests to bug-dbix-class-servicemanager@rt.cpan.org, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT & LICENSE

Top


DBIx-Class-Service documentation  | view source Contained in the DBIx-Class-Service distribution.