hi MB,
das Beispiel hast ja schon gesehen.
Im Prinzip ist das so, daß man eine Referenz auf die Ergebnismenge mit dem Namen einer Klasse segnet, damit man mit dieser Referenz Methoden aufrufen kann.
$r = $sth->fetchAll(PDO::FETCH_CLASS, 'Dumper');
segnet zwar nicht die gesamte Datenmenge sondern nur jeden darin enthaltenen Record, aber das Prinzip sollte verständlich sein.
In Perl würde dasselbe etwa so aussehen:
use strict;
use warnings;
require dd;
my $r = \%ENV; # Referenz erzeugen
bless $r, 'main'; # Referenz mit dem Namen der Klasse main segnen
$r->dd(); # Methode der Klasse main aufrufen
Wobei hier der Einfachheit halber eine Referenz auf den Hash %ENV
erzeugt wurde. In meiner Praxis mache ich prinzipiell dasselbe nur andersherum: Die Daten/Ergebnismenge werden in einer Instanz referenziert die bereits vorhanden ist. I.d.R. ist es diejenige Instanz die auch für die Ausgabe der Daten zuständig ist, z.B. ein FW-Instanz welche die Response erzeugt.
In Perl kann man übrigens auch FileHandles blessen weil das auch Referenzen sind. Mit IO::File
erstellte Handles sind mit ebendiesem Namen der Klasse gesegnet und gestatten es, Methoden wie print()
, seek()
, `truncate()´ usw. aufzurufen.
Also allesamt ist das Alles nüscht Neues, aber ein Neuer sollte schonmal bereits beim Lesen der Doku darüber nachdenken. Nämlich darüber wie er das alles zweckmäßg verwenden kann. Der Rest ergibt sich in der Praxis 😉
MfG