Lösung für die folgende Fehlermeldung:
Fatal error: Class 'Swift_Message' not found in /src/bundle/SomeBundle/Test.php on line 12
Hintergrund war, dass wir im Symfony 2 den SwiftMailer zum Versenden einer E-Mail nutzen wollten. Dazu bietet Symfony 2 standardmässig den Mailer-Service im DependencyInjection-Container an.
$container->get("mailer")
Soweit so gut. Die Symfony-Doku sagt im Abschnitt How to send an Email folgendes:
public function indexAction($name)
{
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('send@example.com')
->setTo('recipient@example.com')
->setBody($this->renderView('HelloBundle:Hello:email.txt.twig', array('name' => $name)))
;
$this->get('mailer')->send($message);
return $this->render(...);
}
Die Lösung für das Problem war in unserem Fall, vor der ersten Verwendung von new \Swift_Message den Service $this->get(‘mailer’) zu holen und somit einmal instanzieren zu lassen. Genau nachvollziehen konnten wir das Problem noch nicht, da es nur auf einem von zwei Entwicklungsservern auftrat, aber wir werden dies mit Sicherheit nochmal genauer prüfen.
Also die Lösung zu dem Problem nochmal kurz zusammengefasst:
public function indexAction($name)
{
$this->get('mailer'); // <<< EINFÜGEN
$message = \Swift_Message::newInstance();
....
$this->get('mailer')->send($message);
}



