Bonjour,

J'ai une extension PHPMailer comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace UsePHPMailer;
 
require_once('vendor/phpmailer/phpmailer/src/PHPMailer.php');
require_once("vendor/phpmailer/phpmailer/src/SMTP.php");
require_once("vendor/phpmailer/phpmailer/src/Exception.php");
 
use \PHPMailer\PHPMailer\PHPMailer;
use \PHPMailer\PHPMailer\SMTP;
use \Exception;
 
class UsePHPMailer extends PHPMailer
{
// ...
}
class_alias('UsePHPMailer\UsePHPMailer', 'UsePHPMailer', false);
Lorsque je fais appel à la classe SMTP, j'ai une erreur Class "SMTP" not found in mon fichier. Pourtant le fichier "vendor/phpmailer/phpmailer/src/SMTP.php" existe bien.
De plus, dans le fichier parent de mon fichier, j'ai la ligne: require_once DIR_ROOT.'vendor'.DIRECTORY_SEPARATOR.'autoload.php';.

J'ai trouvé, il manque la ligne use \PHPMailer\PHPMailer\SMTP; dans le fichier utilisant la classe UsePhpMailer. Je ne comprends pas pourquoi il est nécessaire de répéter l'instruction use \PHPMailer\PHPMailer\SMTP; alors que d'une part elle figure dans l'extension UsePHPMailer et qu'il n'est pas nécessaire de répéter use \PHPMailer\PHPMailer\PHPMailer;.