[PHP & E-Mail] PHPMailer Version 6 erfolgreich einbinden - Druckversion +- PHP Rocks (https://www.php-rocks.de) +-- Forum: Knowledge Base (https://www.php-rocks.de/https://www.php-rocks.de/forum/18-knowledge-base.html) +--- Forum: Tutorials (https://www.php-rocks.de/https://www.php-rocks.de/forum/20-tutorials.html) +--- Thema: [PHP & E-Mail] PHPMailer Version 6 erfolgreich einbinden (/https://www.php-rocks.de/thema/154-phpmailer-version-6-erfolgreich-einbinden.html) |
PHPMailer Version 6 erfolgreich einbinden - Arne Drews - 31.01.2018 Wie binde ich den PHPMailer Version 6 in mein Projekt ein? Ok, bevor ich euch zeige, wie der PHPMailer Version 6 auf einfache Weise eingebunden werden kann, lasst mich ein paar Worte zu einem Thema verlieren, das mir in vielen Foren ziemlich gegen den Strich geht: composer. Nicht, dass ihr mich falsch versteht, composer ist ein klasse Tool... Da wo man es benötigt, allerdings nur. Über Tutorials, wie dieses werden sicher keine Fortgeschrittenen versuchen eine Klasse, wie den PHPMailer in ihre Projekte einzubinden. Zumindest war meine gedachte Zielgruppe der Einsteiger/Anfänger mit wenig Erfahrungen. Und warum soll der bitte schön immer gleich composer als Allheilmittel verwenden? Ich behaupte nicht, dass ich ein besonders herausragender PHP-Entwickler bin, denn grundsätzlich ist das auch nur ein Hobby von mir. Aber ich kann dennoch behaupten, auch schon Projekte mittlerer Größe umgesetzt zu haben, ohne dass ich diese Tools vermisst hätte. Da es aber scheinbar zeitgemäß ist, neue Versionen von PHP-Klassen mit composer zu installieren, wird dem Einsteiger/Anfänger damit wieder alles schwerer gemacht, denn sind wir mal ehrlich: Wer schon Probleme hat, Klassen wie den PHPMailer einzubinden, wird sicherlich weitaus mehr Probleme haben, composer erstmal an den Start zu bringen! Und das ist nicht abwertend gemeint, sondern einfach nur ehrlich... Aber genug davon, lasst uns loslegen! Was mach ich ohne composer? In der Version 5 des PHPMailer war das Einbinden ein klein wenig einfacher, da es dort einen eigenen Autoloader gibt. In Version 6 verlässt man sich auf den Autoloader von... na wer weiß es... na klar: composer! Ok, war das letzte Mal, dass ich den hier erwähnt habe, versprochen! Also grundsätzlich sagt die Doku aus, dass ein manuelles Einbinden auch auf folgende Weise geschehen kann: Doku-Zitat: https://github.com/PHPMailer/PHPMailerPHP-Code: use PHPMailer\PHPMailer\PHPMailer; Also vergessen wir das und erklären das mal auf ähnliche Weise. Ich gehe davon aus, dass ihr einen Webspace habt, auf den ihr das heruntergeladene PHPMailer-Verzeichnis laden könnt. Das Resultat sollte dann diesem Schema entsprechen: Code: Webroot PHP-Code: use PHPMailer\PHPMailer\PHPMailer; Alternative: Ein eigener Autoloader Zugegeben, die Variante bringt jetzt keinen grundsätzlich entscheidenden Vorteil, aber ich finde die persönlich charmant genug, um sie trotzdem zu erwähnen. Ich mag das Autoloading-Prinzip und habe für meine Projekte die eigenen Autoloader entsprechend für die Verwendung des PHPMailer angepasst. Da dies Tutorial natürlich nichts mit meinen Projekten zu tun hat, habe ich das Ganze mal entkoppelt und stelle eine mögliche Version für Interessierte gerne hier zur Verfügung: HinweisBitte bedenkt, dass für die Verwendung des folgenden Code eine PHP Version ab 7.0 notwendig ist!PHP-Code: class PHProcksAutoloader { PHPMailer ab, bspw. als PHProcksAutoloader.php .Dann sieht unsere Implementierung des PHPMailer nur noch wie folgt aus: PHP-Code: use PHPMailer\PHPMailer\PHPMailer; Ich hoffe, ich konnte dem Einen oder Anderen ein wenig Hilfe bieten, beim Einbinden des PHPMailer. Feedback oder Fragen gerne hier im Forum. |