Antwort an „Rolf B“ verfassen

Hallo Bastian,

das Problem ist, dass eine Klasse nur einmal deklariert werden kann. Und mit jedem include würde sie neu deklariert.

Schnellste Lösung: Ziehe die Klasse (vom require von mc_table.php bis zum Ende der class Deklaration, also das } vor der new Zeile aus test.php) heraus und speichere diesen Teil in einer eigenen PHP Datei. Und diese bindest Du im test.php mit require_once ein.

Grundsätzlich solltest Du aber ein paar Blöcke bilden.

  • Deklaration der Klasse
  • Eine Funktion, die die Plausis durchführt
  • Eine Funktion, die ein PDF generiert

Wenn die beiden Funktionen riesig sind, kann es für die Lesbarkeit besser sein, sie in kleinere Funktionen aufzuteilen. Wie einfach das ist, hängt davon ab, wie stark die Kohärenz in diesen Funktionen ist (d.h. wie sehr hängen die einzelnen Code-Abschnitte datenmäßig miteinander zusammen). Ist die Kohärenz hoch, muss man zu viele Daten als Parameter durch die Gegend schieben. Ist sie niedrig, ist das Ausgliedern von Teilfunktionen gut machbar. Das kannst Du nur selbst beurteilen.

Diese drei Blöcke kannst Du in einer PHP Includedatei hintereinander setzen, oder in drei getrennte Includes. Da es relativ eng zusammenhängt, würde ich vermutlich ein Include bauen. Nennen wir es mal "pdf_fabrik.php". Und dieses Include TUT SONST NICHTS. Das ist einer der PHP Styleguides (PSR-1: Side Effects). Entweder deklariert eine PHP Datei Dinge (Konstanten, Klassen, Funktionen) Oder sie führt sie aus. Aber nicht beides. Dein test.php tut beides und prompt beweist sich der Sinn von PSR-1.

Nach der Trennung würde test.php dann nur noch die pdf_fabrik inkludieren, die ID aus $_GET holen, die Plausi aufrufen und dann das PDF erzeugen.

In deinem Batch würdest Du die pdf_fabrik ebenfalls inkludieren. Ob Du dann Plausis ausführen musst, ist Dir überlassen. Vermutlich nicht. Und dann rufst Du in der Schleife fünf Mal die Funktion zum Erzeugen eines PDFs auf.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen