Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-11-2012 20:08:44

manuclin
Nouveau membre
Date d'inscription: 13-02-2012
Messages: 5

Service Not Found Exception

Bonsoir,

J'avance péniblement dans la prise en main de ZF2.
Je consulte donc les différents blogs et ce forum.

J'ai essayé d'étudier les fabriques et je suis tombé sur un excellent article de bakura :
How to use ZendMail

J'ai donc essayé de mettre sa solution en place à partir du Skeleton et le tester dans le module Application :

placement des fichiers :
- MessageFactory.php             => /vendor/zendframework/zendframework/library/Common/Mail/Service/
- SmtpTransportFactory.php    => /vendor/zendframework/zendframework/library/Common/Mail/Service/
- Mailer.php                           => /vendor/zendframework/zendframework/library/Common/Service/


Modification du fichier du module Application : Module.php

Code:

(...)
class Module
{

   (...)
    public function getServiceConfiguration()
    {
        return array(
                'shared'    => array(
                    'common.mailer.default_message' => false
                ),
                'factories' => array(
                    'common.mailer.smtp_transport'  => new Common\Mail\Service\SmtpTransportFactory(),
                    'common.mailer.default_message' => new Common\Mail\MessageFactory()
                )
        );
    }

Modification du fichier du module Application : module.config

Code:

(...)
return array(
    'router' => array(...
    ),

   (...)

    'mailer' => array(
        'default_message' => array(
            'from' => array(
                'email' => 'adresse@email.fr',
                'name'  => 'Nom'
            ),
            'encoding'  => 'utf-8' 
        ),
        'smtp_options'  => array(
            'name'  => 'localhost.localdomain',
            'host'  => '127.0.0.1',
            'port'  => 25,
        )
    )
);

Dans le contrôleur IndexController.php

Code:

(...)
    public function indexAction()
    {
        $mailer = $this->getServiceLocator()->get('common.service.mailer');
        $message = $mailer->createHtmlMessage('email@adresse.fr', 'Test', 'application/index/email.phtml');
        $mailer->send($message);     
    }
(...)

Avec ceci, j'ai le message suivant :

Zend\ServiceManager\Exception\ServiceNotFoundException
Fichier:C:\wamp\www\test\vendor\zendframework\zendframework\library\Zend\ServiceManager\ServiceManager.php:450
Message:Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for common.service.mailer

Pouvez-vous m'éclairer ?

Dernière modification par manuclin (19-11-2012 20:50:16)

Hors ligne

 

#2 19-11-2012 22:56:16

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Service Not Found Exception

Salut là c'est assez simple il trouve pas la factory situé à common.service.mailer. Tu as une partie de la réponse ici http://www.z-f.fr/forum/viewtopic.php?id=8261 smile

Hors ligne

 

#3 20-11-2012 12:17:01

manuclin
Nouveau membre
Date d'inscription: 13-02-2012
Messages: 5

Re: Service Not Found Exception

Merci Orkin pour ta réponse.

Je cherche toujours :

La configuration est récupérée correctement :

Code:

    public function indexAction()
    {
                $config = $this->getServiceLocator()->get('Configuration');
                return array('content' => print_r($config['mailer'], true));       
    }

le résultat :

Array (
        [default_message] => Array (
            [from] => Array (
                [email]=> adresse@email.fr
                [name] => Nom
            )
            [encoding] => utf-8
        )
        [smtp_options] => Array (
            [name] => localhost.localdomain
            [host] => 127.0.0.1
            [port] => 25
        )
    )

Il semble qu'il faut ajouter un élément de configuration pour que le framework puisse trouver :
Common\Mail\Service\SmtpTransportFactory()
Common\Mail\MessageFactory()

à l'emplacement :
/vendor/zendframework/zendframework/library/Common/Mail/Service/

Quelqu'un peut-il m'aider ? wink

Dernière modification par manuclin (20-11-2012 12:19:00)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages