Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-09-2012 16:50:32

roswellenshort
Membre
Date d'inscription: 06-09-2012
Messages: 12

problème "d'adapter" [Résolu]

Bonjour,

J'opte pour le classique pattern MVC mais je me retrouve avec une erreur d'adaptateur de connexion à la base de données.

Voici pour commencer, le code de l'index.php, situé dans "/www/htdocs/InfoNaut/public"

Code:

<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

//Zend_Layout::startMvc(array('layoutPath' => '/../applications/views/layouts'));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

Le .ini (application.ini) dans /www/htdocs/InfoNaut/application/configs/")

Code:

[production]

phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
phpSettings.date.timezone = "Europe/Paris"
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.view[] =
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.username = root
resources.db.password = root
resources.db.dbname = Infonaut
[staging : production]

[testing : production]

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Pour aider, voici le début du code du contrôleur :

Code:

<?php

require_once (APPLICATION_PATH."/models/Tavurnav.php");

class InfonautController extends Zend_Controller_Action

{
    //appel a index.phtml
    public function indexAction () {
            $this->view->message = "controleur par défaut du controleur infonaut";
        }
    
    //appel a list.*.phtml
    public function listAction () {
        $this->view->message="action listing du controleur infonaut";
        $infonaut = new Tavurnav; <----- ici l'appel à une classe modèle
        
        
        }

    //appel a edit.phtml
    public function editAction () {
        
    }
        
        public function deleteAction() {
                
            }

Voici le coeur du problème, le bootstap ("/www/htdocs/InfoNaut/application")

Code:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

    protected function _initDoctype () {
        $this->bootstrap('view');
        $view = $this->getResource('view');
        $view->doctype('XHTML1_STRICT');
        ini_set('display_errors', 1);
        $config= new Zend_Config_Ini (APPLICATION_PATH .'/configs/application.ini','development');
        try{
            $db=Zend_Db::factory($config->resources->db);
            //$registry = Zend_Registry::getInstance();
            //$registry->set('config', $config);
            $db->getConnection();
        
            Zend_Db_Table_Abstract::setDefaultAdapter($db);
        }
        catch (Zend_Db_Adapter_Exception $e){
                echo "connexion impossible à la base";
                } catch (Zend_Exception $e) {
                            echo "classe introuvable";    
                    }
                }

}

Je me retrouve avec l'erreur suivante lorsque je teste l'appli :

Code:

connexion impossible à la base Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'Configuration array must have a key for 'dbname' that names the database instance' in /www/htdocs/InfoNaut/library/Zend/Db/Adapter/Abstract.php:287 Stack trace: #0 /www/htdocs/InfoNaut/library/Zend/Db/Adapter/Abstract.php(183): Zend_Db_Adapter_Abstract->_checkRequiredOptions(Array) #1 /www/htdocs/InfoNaut/library/Zend/Db.php(270): Zend_Db_Adapter_Abstract->__construct(Array) #2 /www/htdocs/InfoNaut/library/Zend/Application/Resource/Db.php(142): Zend_Db::factory('PDO_MYSQL', Array) #3 /www/htdocs/InfoNaut/library/Zend/Application/Resource/Db.php(154): Zend_Application_Resource_Db->getDbAdapter() #4 /www/htdocs/InfoNaut/library/Zend/Application/Bootstrap/BootstrapAbstract.php(683): Zend_Application_Resource_Db->init() #5 /www/htdocs/InfoNaut/library/Zend/Application/Bootstrap/BootstrapAbstract.php(626): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('db') #6 /www/htdocs/InfoNaut/library/Zend/Application/Bootstrap/BootstrapAbstract.php( in /www/htdocs/InfoNaut/library/Zend/Db/Adapter/Abstract.php on line 287

Pourriez vous m'aider à me décoincer, en espérant avoir donné suffisamment de billes...

Dernière modification par roswellenshort (25-09-2012 14:01:48)

Hors ligne

 

#2 24-09-2012 21:04:01

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: problème "d'adapter" [Résolu]

Bonjour,

Dans ton application.ini il manque les clés params apres resources.db.

resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = root
resources.db.params.dbname = Infonaut

http://framework.zend.com/manual/1.12/f … sources.db

Dernière modification par us2rn4m2 (24-09-2012 21:26:42)

Hors ligne

 

#3 25-09-2012 14:01:18

roswellenshort
Membre
Date d'inscription: 06-09-2012
Messages: 12

Re: problème "d'adapter" [Résolu]

En effet, ça marche mieux smile Merci (j'ai trouvé ce matin en arrivant, la tête fraiche)

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