luc2
2013-06-14 10:17:45 UTC
salut,
c'est djuuuuuuuuuur la conception !!!!!!!! oh la la... qu'est-c' qu'i'
faut et'e con pour vouloir en faire....
supposons que je veuille faire une lib globale qui gere plein de trucs,
qui manipule des entites, disons des livres pour faire concret.
j'instancie ma lib, je l'initialise, et c'est parti mon kiki :
my $lib = MaLib->new();
$lib->init();
mettons que je fasse une methode pour recuperer les livres :
sub get_livres
{
my $self = shift;
my $schema = $self->{_schema};
my @livres = $schema->resultset('Livre')->all;
return @livres;
}
je veux pouvoir recuperer des informations sur un livre :
my @livres = $lib->get_livres;
my $livre = shift @livres;
my $informations = $livre->get_informations;
je vais maintenant coder la methode "get_informations" :
vim lib/MaLib/Schema/Result/Livre.pm
sub get_informations
{
...
return $lib->get_informations( $self );
}
probleme : j'ai besoin d'une reference vers la $lib globale, et je n'ai
pas cette reference. pourquoi j'ai besoin de la $lib globale ? parce
qu'elle a initialise un element dont j'ai besoin pour recuperer ces
informations.
question : comment transmettre cette reference $lib a cet objet ?
c'est djuuuuuuuuuur la conception !!!!!!!! oh la la... qu'est-c' qu'i'
faut et'e con pour vouloir en faire....
supposons que je veuille faire une lib globale qui gere plein de trucs,
qui manipule des entites, disons des livres pour faire concret.
j'instancie ma lib, je l'initialise, et c'est parti mon kiki :
my $lib = MaLib->new();
$lib->init();
mettons que je fasse une methode pour recuperer les livres :
sub get_livres
{
my $self = shift;
my $schema = $self->{_schema};
my @livres = $schema->resultset('Livre')->all;
return @livres;
}
je veux pouvoir recuperer des informations sur un livre :
my @livres = $lib->get_livres;
my $livre = shift @livres;
my $informations = $livre->get_informations;
je vais maintenant coder la methode "get_informations" :
vim lib/MaLib/Schema/Result/Livre.pm
sub get_informations
{
...
return $lib->get_informations( $self );
}
probleme : j'ai besoin d'une reference vers la $lib globale, et je n'ai
pas cette reference. pourquoi j'ai besoin de la $lib globale ? parce
qu'elle a initialise un element dont j'ai besoin pour recuperer ces
informations.
question : comment transmettre cette reference $lib a cet objet ?