Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-03-2009 09:35:33

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

Conflit entre Zend_Db et Zend_Acl possible ?

Bonjour,
je veux instancier ma classe "acltable" dans la fonction construct de ma classe adexacl.php mais je reçoit un message d'erreur et je ne comprends pas pourquoi. Ma classe acl.php "extends" la classe Zend_Acl, le problème peut-il venir de là?

Ma classe acltable.php

Code:

<?php
class acltable extends Zend_Db_Table
{
    protected $_name = "Acl";
        protected $_primary = "AID";
}
?>

Ma classe adexacl.php

Code:

class adexacl extends Zend_Acl
{
    // Classe à l'état de test pour l'instant
    public function __construct()
    {
        (...)
                        $tableAcl = new acltable();
            $id = login::GetUID(); // fonction qui me renvoit l'ID de l'user depuis une autre base de donnée
            $select = $tableAcl->select();
            $select->where('AID = ?',$id);
            $result = $tableAcl->fetchAll($select);
        (...)
    }
}

Le message d'erreur obtenu est le suivant:

Code:

Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for acltable' in /mnt/sdb1/www/adex/zfAdex/library/Zend/Db/Table/Abstract.php:636 Stack trace: 
#0 /mnt/sdb1/www/adex/zfAdex/library/Zend/Db/Table/Abstract.php(621): Zend_Db_Table_Abstract->_setupDatabaseAdapter() 
#1 /mnt/sdb1/www/adex/zfAdex/library/Zend/Db/Table/Abstract.php(286): Zend_Db_Table_Abstract->_setup() 
#2 /mnt/sdb1/www/adex/zfAdex/application/default/models/adexacl.php(69): Zend_Db_Table_Abstract->__construct() 
#3 /mnt/sdb1/www/adex/zfAdex/application/bootstrap.php(28): adexacl->__construct() 
#4 /mnt/sdb1/www/adex/zfAdex/public/index.php(13): require('/mnt/sdb1/www/a...') 
#5 {main} thrown in /mnt/sdb1/www/adex/zfAdex/library/Zend/Db/Table/Abstract.php on line 636

Merci d'avance à qui pourra me renseigner smile

A. Bessems

Dernière modification par abessems (03-03-2009 09:36:16)

Hors ligne

 

#2 03-03-2009 10:21:27

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Conflit entre Zend_Db et Zend_Acl possible ?

je ne comprends pas bien ce que tu cherche à faire
mais là il te dit simplement que tu construit un objet Table sans adapter de base de donnée

en clair tu cherche à établir un lien entre ton objet acltable et la table "ACL" dans ta base mais sans connexion à la base

A+JYT

Hors ligne

 

#3 03-03-2009 10:22:11

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Conflit entre Zend_Db et Zend_Acl possible ?

Hello,

Tu dois fournir un adaptateur de base de données à table.

A+

@sekaijin: plus rapide wink

Dernière modification par mikaelkael (03-03-2009 10:22:48)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#4 03-03-2009 10:34:02

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

Re: Conflit entre Zend_Db et Zend_Acl possible ?

Merci pour vos réponses mais jusqu'à maintenant je n'ai jamais eu de problèmes avec mes bases de données, j'utilise même acltable.php dans d'autres fichiers mais ici je ne comprends pas pourquoi ça ne fonctionne pas.

Dans mon initialiser.php j'ai une fonction qui se charge de se connecter à la base de donéne

Code:

public function initDb()
    {
        // Initiation du fichier config
        $config = new Zend_Config_Ini('http://xxx/adex/zfAdex/application/adex.ini', 'MYSQL');
        // Mise en place de la Base de Données
        try
        {
            $db = Zend_Db::factory($config->database-> adapter, $config->database-> params);
            Zend_Db_Table::setDefaultAdapter($db);
            $db->getConnection();
            // On test si la connexion s'est bien déroulée
            Zend_Registry::set('db',$db);
        }
        catch (Zend_Db_Adapter_Exception $e)
        {
            echo $e->getMessage();
            // Si on ne voit aucuns messages d'erreurs à ce stade, c'est que la connexion à la BDD a réussi.
        }
    }

Hors ligne

 

#5 03-03-2009 11:13:38

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

Re: Conflit entre Zend_Db et Zend_Acl possible ?

Je me demande si le problème ne viendrai pas du fait que ma classe est appelé avant le dispatch du bootstrap (logique de l'appeler là vu que c'est la gestion des ACL mais est-ce que à ce stade, on peut aller appeler d'autres classes ?)

Bootstrap.php

Code:

set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . '../application/default/models/' . PATH_SEPARATOR . get_include_path());

require_once 'Initializer.php';

// Prepare the front controller. 
$frontController = Zend_Controller_Front::getInstance(); 

$frontController->registerPlugin(new Initializer('development'));    

$acl = new adexacl();
$frontController->registerPlugin(new pluginauth($acl));

// Dispatch the request using the front controller. 
$frontController->dispatch();

Où placez vous l'instanciation du fichier ACL en général ?

Hors ligne

 

#6 03-03-2009 12:10:10

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Conflit entre Zend_Db et Zend_Acl possible ?

tu doit avoir un param du constructeurA+ qui te permet de spécifier l'adapter

A+

Hors ligne

 

#7 03-03-2009 12:27:15

abessems
Membre
Date d'inscription: 19-02-2009
Messages: 12

Re: Conflit entre Zend_Db et Zend_Acl possible ?

Je suis encore débutant dans Zend Framework, pourrais-tu être plus précis.

Le problème vient donc bien du fait que je l'appele avant le dispatch si j'ai compris ?!?

Hors ligne

 

#8 03-03-2009 12:43:26

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Conflit entre Zend_Db et Zend_Acl possible ?

regarde la doc du constructeur
il y a moyen de passer un tableau de params dont l'adpater à la base

A+JYT

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