WebsiteBaker Community Forum

WebsiteBaker Support (2.13.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: LudwigSt on April 28, 2022, 01:29:56 PM

Title: PHPMailer
Post by: LudwigSt on April 28, 2022, 01:29:56 PM
Hallo an alle,

das Verzeichnis für den PHPMailer ist in der heruntergeladenen zip Datei schon als "phpmailer" in Kleinbuchstaben vorhanden. Man könnte jetzt meinen, das liegt an Windoof, aber die Unterverzeichnisse, die ebenfalls Dateien mit Groß- und Kleinschreibung enthalten, werden korrekt dargestellt.

Wenn ich das richtig verstanden habe (nach Forumssuche nach PHPMailer), dann sollte man die Ordner in "PHPMailer" umbenennen. Kann man den dann ganz normal für eigene Anwendungen benutzen, oder muss etwas beachtet werden?
Title: Re: PHPMailer
Post by: Luisehahne on April 28, 2022, 01:38:54 PM
Hallo Ludwig,
das muss so blieben wie es ist. Unter Windows wirst du keine Änderung feststellen, aber unter Unix wird er die Klasse nicht finden

Dietmar
Title: Re: PHPMailer
Post by: LudwigSt on April 28, 2022, 01:51:50 PM
Also doch alles in Kleinbuchstaben?

Und wie ist dann der Aufruf?
Code: [Select]
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
funktioniert dann doch nicht, oder doch?
Title: Re: PHPMailer
Post by: DarkViper on April 29, 2022, 04:57:00 AM
Also doch alles in Kleinbuchstaben?

Und wie ist dann der Aufruf?
Code: [Select]
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';
funktioniert dann doch nicht, oder doch?
Dein Beispiel gilt nur, wenn das System keinen PSR-4 konformen Autoloader hat, wie z.B. Composer oder eben auch WB  ;-)

Alles in Kleinbuchstaben?   eindeutig "JEIN"

Die Regeln für PHPMailer (und zukünftig für alle Pakete):
Die physikalischen Verzeichnisnamen in Kleinbuchstaben (phpmailer/phpmailer/src/)
Die Namespaces und Dateinamen der Klassendateien in gemischter Schreibweise (PHPMailer.php), wobei der Dateinamen sowohl vom Namen als auch der Schreibweise identisch zum enthaltenen Klassennamen (mit angehängtem '.php') sein muss.

Der Aufruf besteht dann nur noch aus z.B.:
Code: [Select]
<?php
// den PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\SMTP;  // <<<< wird nur benötigt, wenn das aufrufende Programm public SMTP-Konstanten verwenden will

// irgendwas vorher erledigen

// jetzt Mailerinstanz erzeugen
$oMailer = new PHPMailer();
//die Properties setzen und dann nacheinander die benötigten Methoden aufrufen
$oMailer->xxxx  'ztzu';
$oMailer->tuwas('xxxx');

// irgendwas anderes danach noch erledigen

Das ist alles, was für den PHPMailer benötigt wird.
Nur ein einziger use-Eintrag und keinerlei  require() oder include(). Der Rest wird alles automatisch bei Bedarf vom Autoloader erledigt.

Alle Klarheiten beseitigt??

LG. Manuela
Title: Re: PHPMailer
Post by: LudwigSt on April 29, 2022, 04:01:11 PM
Alle Klarheiten beseitigt??
Danke Manuela, alles verstanden und klappt!  :-)