Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > DB und PDF Klasse kombinieren
Antwort
 
Themen-Optionen
Alt 27.12.2005, 20:46   Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 274
Standard DB und PDF Klasse kombinieren

Ich möchte PDF Rechnungen anhand Infos aus meiner Datenbank erstellen. Dachte daran an FPDF. Außerdem benutzte ich ne Datenbank Klasse.
Ich hatte zudem vor eine Klasse Rechnung zu erstellen.

Wie verbinde ich also diese 3 Klassen am geschicktesten miteinander? Das ich beispielsweise mit $Rechnung->zeigeRechnung Befehle aus der DB und FPDF verwende um dann die gewünschte Ausgabe zu bekommen? Mit Interfaces oder Vererbung? Ich weiß auch nicht so recht, da die FPDF Klasse recht groß ist wie es da mit Vererbung aussieht.

Oder gibt es da irgendwie ne bessere Möglichkeit? (PHP5)
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.12.2005, 21:45   Nach oben    #2
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Hi,
hier mal ein kleines Beispiel .. mehr oder weniger Pseudocode.
PHP-Code:
<?php

    
/**
     * 
     * Rechnung
     *
     * @author Benjamin Klaile <benjamin@klaile.com>
     * @version 0.1
     * @copyright Copyright &copy; 2005, Benjamin Klaile
     */


    
class Rechnung {
        
        
/**
         * Instanzvariablen der Klassen PDF und DB
         */
        
private $pdf null;
        private 
$db  null;
        
        
/**
         * Daten, die in der PDF-Datei ausgegeben werden sollen.
         * Strukturierung im Array.
         */
        
private $rechnungsdaten = array();
        
        
        
        
/**
         * 
         * __construct()
         * 
         * @access public
         * 
         * Defaultkonstruktor. Erstellt die benötigten Instanzen der Klassen PDF und DB.
         */
        
public function __construct() {
            
            
$this->pdf = new PDF();
            
$this->db  = new DB();
        }
        
        
        
        
/**
         * 
         * erstelleRechnung(int kundenID)
         * 
         * @access public
         * @param int $kundenID
         *            Spezifiziert die Daten, die ausgelesen werden sollen.
         */
        
public function erstelleRechnung($kundenID) {
            
$this->ladeDaten($kundenID);  
            
$this->erstellePDFDatei();         
        }
        
        
        
/**
         * 
         * ladeDaten(int kundenID)
         * 
         * @access private
         * @param int $kundenID
         *            Spezifiziert die Daten, die ausgelesen werden sollen.
         */
        
private function ladeDaten($kundenID) {
        
            
$sql 'SELECT
                         daten
                    FROM
                         rechnungstabelle
                    WHERE
                         kundenID = ' 
$kundenID;
                         
            
$this->db->query($sql);
            
$this->rechnungsdaten $this->db->fetch_assoc();
        }
        
        
        
/**
         * 
         * erstellePDFDatei()
         * 
         * @access private
         */
        
private function erstellePDFDatei() {
            
$this->pdf->createDocument();
            
$this->pdf->setTitle('Rechnung');
            
            
/*
             * Hier kann man dann die entsprechenden Methoden der PDF-Klasse verwenden, um
             * die Daten in der PDF-Datei so anzuordnen, wie man das denn gerne hätte.
             */             
        
}
        
        
        
/**
         * 
         * getRechnungAlsPDF()
         * 
         * @access public
         * @return PDF-Document (keine Ahnung, wie hier der richtige Rückgabetyp ist *G*)
         */
        
public function getRechnungsAlsPDF() {
            
$this->pdf->getDocument();
        }

    }

?>
In der aufrufenden Datei schreibst du nun
PHP-Code:
<?php

    $obj 
= new Rechnung();
    
$obj->erstelleRechnung();
    
$var $obj->getRechnungAlsPDF();

?>
Die letzte Zeile hängt dann natürlich davon ab, wie das PDF-Dokument weiterverarbeitet werden soll.
Da könnte z.B. auch stehen
PHP-Code:
$obj->sendePDFDateiAnBrowser(); 
oder so.

Die Klassen PDF und DB schreibe ich hier jetzt nicht ..

Generell sei gesagt, dass das ganze nichts mit Vererbung zu tun hat.
Vererbung ist in diesem Falle absolut nicht das, was du brauchst. Delegation schon viel eher.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.12.2005, 21:57   Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 30.10.2005
Beiträge: 274
Standard

Vielen Dank dafür! Hatte schon an sowas gedacht, also Objekte im Objekt, also. Danke hat mir gut weitergeholfen.
ex³ ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klasse in Klasse verwenden? goelliboy PHP-Programmierung 12 07.09.2007 11:43
Wert Varible in Listener anderer Klasse nutzen??? risa Desktop-Applikationen und Grafik 1 03.04.2006 07:36
Design für eine Klasse js-mueller Allgemeine Java-Programmierung 1 12.03.2006 19:23
php5 pdf klasse? ex³ PHP-Programmierung 4 19.02.2006 12:41
DB Klasse Problem, vererben, kombinieren ex³ PHP-Programmierung 7 05.02.2006 17:06


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:14 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

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