DBIx::Class::Service

Aggregate DBIC processes between multiple tables.
Download

DBIx::Class::Service Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Toru Yamaguchi
  • Publisher web site:
  • http://search.cpan.org/~zigorou/RPM-Util-Files-0.10/lib/RPM/Util/Files.pm

DBIx::Class::Service Tags


DBIx::Class::Service Description

Aggregate DBIC processes between multiple tables. DBIx::Class::Service is a Perl module to aggregate DBIC processes between multiple tables.SYNOPSISEach service class example: package MySchema::Service::User; use strict; use warnings; use base qw(DBIx::Class::Service); sub add_user: Transaction { my ($class, $schema, $args) = @_; my $user_rs = $schema->resultset('User'); my $user = $user_rs->create({ user_seq => undef, user_id => $args->{user_id}, password_digest => crypt($args->{password}, $args->{user_id}), }); $user->create_related('profiles', { name => $args->{name}, nickname => $args->{nickname}, }); return $user; } sub authenticate: DataSource { my ($class, $schema, $user_id, $password) = @_; return $schema->resultset('User')->find({ user_id => $user_id, password_digest => crypt($password, $user_id) }); } 1;And your schema class: 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' => }); 1;Using: use MySchema::Schema; my $schema = MySchema::Schema->connect($dsn, $dbuser, $dbpass); ### note: please see arguments. do not need $schema $schema->service('User')->add_user($args); Requirements: · Perl


DBIx::Class::Service Related Software