Thread dbix::class anfänger (4 answers)
Opened by Gast at 2008-10-06 11:41

renee
 2008-10-06 12:31
#115199 #115199
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich würde das ungefähr so lösen:

Die Schemas sind nur für die Daten in der Datenbank da, nicht für das "Verhalten" eines Spielers.

Eine Klasse Spieler, der den Spieler an sich realisiert. Diese Klasse hat die Methoden "run", "kick",...

Wenn Daten wie "Anzahl Tore", "Name", "Verein" in der DB sind, dann werden die Attribute über die Schema-Klasse gesetzt.


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package YourApp::Spieler;

use strict;
use warnings;

use My::DB;

my $schema = My::DB->connect( ... );

sub new{
  my ($class,$name) = @_;

  my $self = bless {}, $class;

  _init();

  $self;
}

sub run {
    print "der Spieler rennt";
}

sub kick {
    print "der Spieler passt zu einem Mitspieler"; 

    if( $is_goal ){
        my $info = $self->_info;
        $info->update( Anzahl_Tore => $info->Anzahl_Tore + 1 );
    }
}

sub _info {
    my ($self) = @_;

    unless( $self->{info} ){
        my $info = $schema->resultset( 'Spieler' )->search( Name => $name );
        $self->{info} = $info;
    }

    $self->{info}
}

1;


Code (perl): (dl )
1
2
3
package My::DB::Spieler;

# der ganze DBIx::Class-Kram


DB und Controller sollten getrennt sein...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread dbix::class anfänger