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

MVC PHP Discussion :

variable dans index.php


Sujet :

MVC PHP

  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut variable dans index.php
    Bonjour,
    j'ai une variable ($db) dans index.php et je veux l'utiliser dans IndexController.php.
    comment j'appelle cette variable à partir de IndexController.php?
    merci d'avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Par défaut lien ?
    Hello,

    Quel lien y a t'il entre index.php et indexcontroler.php (formulaire, include, lien ...) ???

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 306
    Par défaut
    Hello,

    Plusieurs solutions :

    Tu l'as créé en tant que variable globale avec $GLOBALS['db'] = $db;

    Et tu l'utilise avec $GLOBALS['db'] dans ton index.

    Ou tu créé ta variable dans un singleton.

    Ou tu crée un Zen_Conf

    ...
    A+

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    tu peux aussi faire un setParam() sur l'instance de ton FrontController, ou bien te servir du registre.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    merci bcp pour votre aide.
    Voici mon problème en détail:
    J'utilise un fichier config.ini contient les paramètres de la connexion à la base de données.
    la variable $db est identifié dans la page index.php.
    Je veux appeler la variable $db qui contient les même données.

    J'ai fait le suivant:
    dans index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $GLOBALS['db'] = Zend_Db::factory($config->db->adapter,  $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($GLOBALS['db']);
    $dbAdapter = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($GLOBALS['db']);
    Zend_Registry::set('dbAdapter', $GLOBALS['db']);
    et dans IndexController.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function listefactureAction()
    	{
                    $GLOBALS['db'] = $db;
    		$req = "SELECT * FROM facture";
    		$this->view->lots = $db->fetchAll($req);
    	}
    Mais ça m'affiche l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined variable: db in C:\wamp\www\Projet_facture\application\controllers\IndexController.php on line 27

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    Merci nicolas,
    mais à quoi serre la fonction: setParam() ?
    SVP donnez moi plus de détail.

  7. #7
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $GLOBALS['db'] = Zend_Db::factory($config->db->adapter,  $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($GLOBALS['db']);
    $dbAdapter = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table::setDefaultAdapter($GLOBALS['db']);
    C'est quoi ce code horrible et en double?

    ça fait 1000 fois que je dis que faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    c'est lourd pour rien!!!!

    formatte ton fichier .ini comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    db.adapter = PDO_MYSQL
    db.params.host = localhost
    db.params.username = root
    db.params.password =
    db.params.dbname = forum
    et fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db::factory($config->db);
    ensuite tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zend_Db_Table::setDefaultAdapter($dbAdapter);
    et dans ton controleur tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dbAdapter = Zend_Db_Table::getDefaultAdapter();
    comme ça pas besoin de variable globale horrible ni de registre.

  8. #8
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par salmoucha Voir le message
    Merci nicolas,
    mais à quoi serre la fonction: setParam() ?
    SVP donnez moi plus de détail.
    http://framework.zend.com/manual/fr/...methods.params

  9. #9
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    j'ai fait comme tu m'a dit mais ça affiche cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'Configuration array must have a key for 'dbname' that names the database instance' in C:\wamp\www\test_zend\library\Zend\Db\Adapter\Abstract.php:243 Stack trace: #0 C:\wamp\www\test_zend\library\Zend\Db\Adapter\Abstract.php(174): Zend_Db_Adapter_Abstract->_checkRequiredOptions(Array) #1 C:\wamp\www\test_zend\library\Zend\Db.php(247): Zend_Db_Adapter_Abstract->__construct(Array) #2 C:\wamp\www\Projet lotissement\index.php(26): Zend_Db::factory(Object(Zend_Config)) #3 {main} thrown in C:\wamp\www\test_zend\library\Zend\Db\Adapter\Abstract.php on line 243

  10. #10
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Soit tu ne l'as pas formatté que je l'ai fais, soit tu utilises une ancienne version du framework.

Discussions similaires

  1. $_SESSION['variable'] dans include php
    Par subran dans le forum Langage
    Réponses: 3
    Dernier message: 11/03/2015, 21h34
  2. [XL-2010] Colonne variable dans INDEX EQUIV
    Par RomBon dans le forum Excel
    Réponses: 6
    Dernier message: 04/12/2013, 08h25
  3. Comment afficher par echo dans index.php ?
    Par whitespirit dans le forum Zend Framework
    Réponses: 2
    Dernier message: 30/01/2008, 05h52
  4. [Joomla!] recup variables dans module php
    Par herveD dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 02/03/2007, 14h06

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