Ah SUPER ça fonctionne bien ça y est, merci Lartak.
Il me manquait le require du fichier autoload.php.
Bon sang, c'est comme si j'étais en apnée depuis 2 semaines et que je pouvai enfin respirer ^^
Et merci aussi intelligid pour le conseil, je ne connaissais pas dump-autoload.
Mais en fait ensuite je voulais utiliser PHPMailer, donc je vais aussi utiliser les dépendences.
D'ailleurs,
je met le sujet en résolu mais si je peux me permettre, j'ai du mal à utiliser une classe EXTERNE maintenant...
En suivant le tuto sur Composer,
je suis allé sur Packaglist,
et j'ai fais une recherche sur "PHPMailer",
parmis les choix proposés, j'ai sélectionné celui qui avait LARGEMENT le plus de download :
https://packagist.org/packages/phpmailer/phpmailer
Je vois qu'il y a :
- composer require phpmailer/phpmailer
- v6.0.0rc2
J'ai donc modifié mon composer.json de cette façon :
{
"name": "test",
"require": {
"phpmailer/phpmailer": "v6.0.0rc2"
},
"autoload": {
"psr-4": {
"App\\": "App/"
}
}
}
composer update
Ça m'a créer le dossier :
.../monSite/vendor/phpmailer/phpmailer/
Toujours sur PackageList, j'ai cliqué sur le lien vers le github de PHPMailer (sur la droite).
Sur github,
https://github.com/PHPMailer/PHPMailer
je descend à la partie : A Simple Example
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
...
???
J'ai fais une recherche, aucun des fichiers dans vendor/phpmailer/phpmailer/ ne s'appelle "PHPMailerAutoload.php"
Alors toujours sur la page du github, je remonte un peu, et à la partie Installation & loading, je vois :
PHPMailer is available via Composer/Packagist (using semantic versioning), so just add this line to your composer.json file:
"phpmailer/phpmailer": "~5.2"
or
composer require phpmailer/phpmailer
La 1ère ligne m'intrigue, pourquoi "~5.2" alors que sur le PackageList j'avais vu "v6.0.0rc2",
je décide d'utiliser la 2ème méthode pour voir... (plus tard j'ai essayé la 1ère méthode, et ça donne exactement pareil)
j'écris ça dans la console :
composer require phpmailer/phpmailer
et j'update
composer update
OK j'ai toujours le dossier vendor/phpmailer/phpmailer, mais cette fois au moins, dedans j'ai : "PHPMailerAutoload.php" (OUF)
Du coup, en me RE-référant à la partie A Simple Example du github, j'écris comme code :
<?php
namespace App\Controller;
class UsersController extends AppController
{
...
require ROOT . 'vendor/phpmailer/phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
...
}
J'étais CERTAINS que ça allait fonctionner,
mais j'ai eu comme erreure :
Fatal error: Uncaught Error: Class 'App\Controller\PHPMailer' not found in C:\xampp\htdocs\work\start20\app\Controller\UsersController.php:222
la ligne 222 étant :
$mail = new PHPMailer;
Voilà donc,
PackageList, et Github, ne semblent pas donner les même instructions (je crois), et que j'essaie de suivre celles de l'un ou de l'autre, je n'arrive pas à mes fins...
Est-ce que je fais encore n'importe quoi ? :'(