Bonjour,
Voila je rencontre un petit problème avec mon code.
Voici l'erreur:
Slim Application Error
The application could not run because of the following error:
Details
Type: Error
Message: Call to undefined method Swift_SmtpTransport::newInstance()
File: C:\wamp64\www\slim\app\Commander\dependencies.php
Line: 68
Voici ma page dependencies.php
<?php
use Respect\Validation\Validator as v;
v::with('App\\Validation\\Rules\\');
$container = $app->getContainer();
$container['debug'] = function () {
return true;
};
// Service factory for the ORM
$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($container['settings']['db']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
$container['db'] = function ($container) use ($capsule) {
return $capsule;
};
// toggle mode: development -> production
$container['dev'] = function ()
{
return true;
};
$container['csrf'] = function ($c) {
return new \Slim\Csrf\Guard;
};
$container['flash'] = function ($container) {
return new \Slim\Flash\Messages;
};
// instanciation du rendre des vue twig
$container['view'] = function ($container)
{
$view = new \Slim\Views\Twig(__DIR__ .'/../../app/Templates',
[
'cache' => $container->dev ? false : (__DIR__) . '/../tmp/cache/twig',
'debug' => $container->dev,
'auto_reload' => $container->dev
]);
if ($container->dev) {
$view->addExtension(new Twig_Extension_Debug());
}
// Instantiate and add Slim specific extension
$basePath = rtrim(str_ireplace('index.php','', $container['request']->getUri()->getBasePath()),'/');
$view->addExtension(new \Slim\Views\TwigExtension($container['router'], $basePath));
$view->addExtension(new \App\Extensions\CsrfExtension($container['csrf']));
$view->getEnvironment()->addGlobal('flash', $container->flash);
return $view;
};
// mail sender (swift_mailer)
$container['mailer'] = function($container)
{
if ($container->debug)
{
$transport = Swift_SmtpTransport::newInstance('localhost',1025);
}else {
$transport = Swift_Transport::newInstance();
}
$mailer = Swift_Mailer::newInstance($transport);
return $mailer;
};
...
Voici mon code au niveau de pageController.php
public function postContact(RequestInterface $request, ResponseInterface $response){
$message = Swift_Message::newInstance('Message de contact')
->setFrom([$request->getParam('email') => $request->getParam('name')])
->setTo('contact@monsite.fr')
->setBody("Un email vous a été envoyé :
{$request->getParam('content')}");
$this->mailer->send($message);
$this->flash('Votre message a bien été envoyé');
return $this->redirect($response, 'contact');
}
Merci pour votre aide
Oui cette méthode est dépréciée depuis 5.4.5 et retirée depuis la 6.0
il faut utiliser le constructeur par défaut à la place
// Create the Transport
$transport = new Swift_SmtpTransport('smtp.example.org', 25);
Bonjour Huggy,
J'ai testé et regardeé la documentation sur https://swiftmailer.symfony.com/docs/introduction.html.
Merci pour ton aide, Seulement j'ai d'autres erreurs
Slim Application Error
The application could not run because of the following error:
Details
Type: Error
Message: Call to a member function get() on null
File: C:\wamp64\www\slim\app\Modules\Controller.php
Line: 66
Voici ce que j'ai :
public function __get($name) {
return $this->container->get($name); //ligne 66
}
Bsr betaWeb Merci pour tes conseils.
Stp aide moi comment comment bien instancié le container?
Parce que j'ai éssayé je n'arrive pas merci.
Tu as suivi les tutos de @grafikart sur Slim ? Sinon vas voir la documentation, tout y est très bien expliqué :)