Thread Programmgerüst und Gültigkeitsbereiche (20 answers)
Opened by tonewheel at 2007-04-13 12:24

renee
 2007-04-13 12:39
#23665 #23665
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
TIMTOWTDI! (There is more than one way to do it)

Frage 3 Perl-Programmierer und Du wirst 5 Antworten erhalten ;-)

Aber nun zu Deinen Fragen...

In der Regel werden die Klassen in der Verzeichnisstruktur abgebildet, aber man *kann* auch mehrere Klassen in eine Datei schreiben (was ich aber *nicht* empfehlen würde).

Wie weit Du die Aufsplittung der Klassen betreibst hängt von den persönlichen "Vorlieben" ab. Gerade Java-Programmierer übernehmen häufig ihre Gewohnheiten und haben ruckzuck eine riesige Sammlung von Klassen.

Wenn Du auf SQL verzichten willst, solltest Du Dich mit Modulen wie CPAN:Class::DBI oder CPAN:DBIx::Class befassen. Damit lässt sich die Datenbank sehr leicht vom Perl-Code trennen.

In den View-Teil würde man keine SQL-Abfragen schreiben, das ist eher was für den Controller-Teil.

Richtig Kapseln kannst Du Variablen nur, wenn Du my einsetzt.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

package Test;

use strict;
use warnings;

my $test = 'Test';
our $VERSION = 0.01;

package main;

print $Test::test,"\t",$Test::VERSION,"\n";


Das hat aber den Nachteil, dass es nur eine Variable für die Klasse gibt

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
#!/usr/bin/perl

package Test;

use strict;
use warnings;

my $test = 'Test';
our $VERSION = 0.01;

sub new{
    my ($class,$value) = @_;
    $test = $value;
    bless {},$class;
}

sub ptest{
    print $test,"\n";
}

package main;

my $obj1 = Test->new(1);
$obj1->ptest;
my $obj2 = Test->new(2);
$obj2->ptest;
$obj1->ptest;


Üblicherweise nimmt man die Objektattribute mit ein den Hash des Objekts. Dann kann man zwar "von außen" zugreifen, aber normalerweise macht man das nicht.

Mit Moose kann man das Kapseln ganz gut nachbilden, aber das wird Dir Ronnie besser erklären können.
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 Programmgerüst und Gültigkeitsbereiche