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

Autres composants PHP Discussion :

Intégration Doctrine dans Zend


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut Intégration Doctrine dans Zend
    Bonjour, je suis en train de suivre le tutoriel de Thorin19 ici :

    http://www.throrinstudio.com/blog/in...e/idarticle/51

    Seulement lorsque je lance "php Doctrine.php"

    Je me retrouve toujours avec cette erreur

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    c:\wamp\www\tutosite.com\application\scripts>php Doctrine.php
     
    PHP Fatal error: Uncaught exception 'Doctrine_Connection_Exception' with messag
    e 'There is no open connection' in C:\wamp\www\tutosite.com\library\Doctrine\Man
    ager.php:662
    Stack trace:
    #0 C:\wamp\www\tutosite.com\library\Doctrine\Manager.php(264): Doctrine_Manager-
    >getCurrentConnection()
    #1 C:\wamp\www\tutosite.com\application\Bootstrap.php(98): Doctrine_Manager::con
    nection(NULL, 'doctrine')
    #2 C:\wamp\www\tutosite.com\library\Zend\Application\Bootstrap\BootstrapAbstract
    .php(667): Bootstrap->_initDoctrine()
    #3 C:\wamp\www\tutosite.com\library\Zend\Application\Bootstrap\BootstrapAbstract
    .php(627): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('doctr
    ine')
    #4 C:\wamp\www\tutosite.com\library\Zend\Application\Bootstrap\BootstrapAbstract
    .php(584): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap('doctrine')
    #5 C:\wamp\www\tutosite.com\application\scripts\Doctrine.php(31): Zend_Applicati
    on_Bootstrap_BootstrapAbstract->bootstrap('doctrine')
    #6 {main}
    thrown in C:\wamp\www\tutosite.com\library\Doctrine\Manager.php on line 662
     
    Fatal error: Uncaught exception 'Doctrine_Connection_Exception' with message 'Th
    ere is no open connection' in C:\wamp\www\tutosite.com\library\Doctrine\Manager.
    php:662
    Stack trace:
    #0 C:\wamp\www\tutosite.com\library\Doctrine\Manager.php(264): Doctrine_Manager-
    >getCurrentConnection()
    #1 C:\wamp\www\tutosite.com\application\Bootstrap.php(98): Doctrine_Manager::con
    nection(NULL, 'doctrine')
    #2 C:\wamp\www\tutosite.com\library\Zend\Application\Bootstrap\BootstrapAbstract
    .php(667): Bootstrap->_initDoctrine()
    #3 C:\wamp\www\tutosite.com\library\Zend\Application\Bootstrap\BootstrapAbstract
    .php(627): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('doctr
    ine')
    #4 C:\wamp\www\tutosite.com\library\Zend\Application\Bootstrap\BootstrapAbstract
    .php(584): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap('doctrine')
    #5 C:\wamp\www\tutosite.com\application\scripts\Doctrine.php(31): Zend_Applicati
    on_Bootstrap_BootstrapAbstract->bootstrap('doctrine')
    #6 {main}
    thrown in C:\wamp\www\tutosite.com\library\Doctrine\Manager.php on line 662
    J'ai bien déclaré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected static function _initNamespaces() 
    {
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->registerNamespace('App_');
    $autoloader->registerNamespace('Doctrine_');
    $autoloader->registerNamespace('Doctrine');	
    }
    dans le bootstrap.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et le _initDoctrine() ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut
    J'ai repris le même que dans l'exemple :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    protected function _initDoctrine() 
    	{
    		//on met Doctrine en autoload
            $this->getApplication()
                 ->getAutoloader()
                 ->pushAutoloader ( array ('Doctrine', 'autoload' ) );
            spl_autoload_register(array('Doctrine', 'modelsAutoload'));
     
            //on récupère une instance de Doctrine
            $manager = Doctrine_Manager::getInstance ();
     
            //permet de valider automatiquement l'intégrité des données
            //ce qui veut dire que l'on ne peut pas mettre une variable de type string
            //dans une variable de type int.
            $manager->setAttribute (Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
            //l’AUTO_ACCESSOR_OVERRIDE va nous permettre de personnaliser l’assignation de données.
            $manager->setAttribute ( Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE, true );
            //Doctrine permet de personnaliser également les classes de table en permettant 
            //de créer des méthodes propres à une table. 
            //Ce paramètre permet de charger le fichier contenant nos méthodes personnalisées.
            $manager->setAttribute (
            	Doctrine::ATTR_MODEL_LOADING, 
            	Doctrine::MODEL_LOADING_CONSERVATIVE
            );
            //on permet le chargement des classes table
            $manager->setAttribute ( Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true );
     
            //on récupère toutes les options doctrine du fichier app.ini
            $doctrineConfig = $this->getOption('doctrine');
     
            //on récupère la variable doctrine.models_path du fichier app.ini
            //afin d'avoir le répertoire des models
            //pour que Doctrine les charge
            Doctrine::loadModels($doctrineConfig['models_path']);
     
            //on récupère la connexion à mysql et on la nomme doctrine
            $conn = Doctrine_Manager::connection($doctrineConfig['dsn'],'doctrine');
            //je sais plus ce que sa veut dire, mais il le faut
            $conn->setAttribute(Doctrine::ATTR_USE_NATIVE_ENUM,true);
     
            //on définit la sortie encodée en UTF-8
            $conn->setCharset('utf8');
            $conn->setCollate('utf8_general_ci');
     
            //on retourne la connexion
            return $conn;
        }

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Normalement la classe unique Doctrine n'existe plus (est plutôt déprécié) il faut utilise Doctrine_Core a la place.
    Est tu sur de ton DSN ? la il est sur NULL

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 36
    Par défaut
    Est-ce que tu connais un bon tuto pour l'intégration de doctrine dans Zend, assez récent?

    Si tu parles de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doctrine.dsn= "mysql://root@localhost/tutosite"
    Je t'avoue que c'est la seule pour laquelle j'ai un doute :
    Je n'ai pas de mot de passe, et mon nom d'utilisateur est "root"

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je disais plus ça dans le sens ou $doctrineConfig['dsn'] n'a pas l'air de renvoyer grand chose

Discussions similaires

  1. Intégration Doctrine 1.2 à Zend
    Par freerider-fou dans le forum Zend_Db
    Réponses: 0
    Dernier message: 22/02/2012, 20h24
  2. intégration pdf dans access
    Par chichant dans le forum Access
    Réponses: 1
    Dernier message: 06/03/2006, 10h38
  3. [FLASH 8] Intégration Php dans une anim Flash
    Par MrPink dans le forum Flash
    Réponses: 1
    Dernier message: 01/02/2006, 22h26
  4. Intégration sql dans delphi
    Par the watcher dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/11/2005, 10h46
  5. Intégration 3DS dans OPENGL
    Par clara dans le forum OpenGL
    Réponses: 3
    Dernier message: 28/12/2004, 17h39

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