IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

[Zend 2.x] Configurer une connexion à une base de données


Sujet :

Zend Framework PHP

  1. #1
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut [Zend 2.x] Configurer une connexion à une base de données
    Bonjour,

    Dans zend frmaework 2.x je voudrais configurer une connexion à une base de donnée. Je prense que le framework et capable de la créé pour moi via de la configuration dan le fichier module.config.php ou application.config.php.

    Voici ce que j'ai mis pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        'db' => array(
            'driver'        => 'Pdo',
            'dsn'           => 'mysql:dbname=MyBase;host=MonServer',
        	'username'		=> 'MonUser',
            'password'		=> 'XXXXXXX',
            'driver_options'=> array(
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
            ),
        ),
    Lorsque j'essaye de récupérer la connexion j'ai une exception. Je récupère la connexion de cette manière dans la méthode bootstrap de mon module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public function onBootstrap(MvcEvent $evm)
    	{
     
    		$translator = $evm->getApplication()->getServiceManager()->get("translator");
    		$translator->setLocale("fr_FR");
     
    		$db = $evm->getApplication()->getServiceManager()->get("db");
    		var_dump($db);
    	}
    J'ai cette exception :
    'Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for db'
    Que fais-je de mal ? Comment faire ?

    Merci

  2. #2
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Ta config n'est pas complète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    return array(
        'db' => array(
            'driver'         => 'Pdo',
            'dsn'            => 'mysql:dbname=zf2tutorial;host=localhost',
            'driver_options' => array(
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
            ),
        ),
        'service_manager' => array(
            'factories' => array(
                'Zend\Db\Adapter\Adapter'
                        => 'Zend\Db\Adapter\AdapterServiceFactory',
            ),
        ),
    );
    Pour le reste, je te laisse lire la doc qui assez claire : http://framework.zend.com/manual/2.0...nd-models.html
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  3. #3
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Effectivement, plus haut dans mon fichier j'ai bien cette section :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        'service_manager' => array(
            'factories' => array(
                'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory',
                'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
            ),
        ),

  4. #4
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    D'après cette doc : http://blog.evan.pro/sharing-a-datab...nd-framework-2
    ma config est bonne.

    Comment récupérer la connexion alors sans avoir l'exception de mon premier post ?

    Merci

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    "db" n'est pas un service. Mais tu peux utiliser l'adapter de base de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $adapter = $evm->getApplication()->getServiceManager()->get("Zend\Db\Adapter\Adapter");
    var_dump($adapter);
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  6. #6
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Etablir une connexion entre base de données et NetBeans
    Par nabil123456 dans le forum NetBeans
    Réponses: 4
    Dernier message: 12/03/2015, 09h13
  2. Fichier de configuration pour une connexion à une base de données
    Par prorace dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 06/06/2011, 13h51
  3. Réponses: 4
    Dernier message: 06/07/2009, 00h04
  4. Ajouter une connexion de base de données
    Par Papy214 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/06/2009, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo