What are the best practices for handling PHP dependencies like PHPMailer, especially when dealing with different versions and autoload requirements?

When dealing with PHP dependencies like PHPMailer and their autoload requirements, it is best to use a package manager like Composer to handle the installation and autoloading of dependencies. This ensures that the correct versions of dependencies are installed and autoloaded properly. Additionally, using Composer allows for easy updating of dependencies and managing conflicts between different versions.

// Require Composer's autoloader
require 'vendor/autoload.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Create a new instance of PHPMailer
$mail = new PHPMailer(true);

// Use PHPMailer as needed
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'user@example.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

// Send the email
$mail->setFrom('from@example.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->Subject = 'Test Email';
$mail->Body = 'This is a test email.';

if($mail->send()) {
    echo 'Email sent successfully';
} else {
    echo 'Email could not be sent.';
}