Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-02-2008 10:31:58

arthemisia
Nouveau membre
Date d'inscription: 06-02-2008
Messages: 6

Problem de Class avec Zend_DB_Table

Bonjour a tous wink


voici mon arbo :

Zend/
Olfp/
--- Table/
-------Tutorat/
----------Row/
-------------User.php
----------Rowset/
-------------User.php
----------Users.php

voici la declaration de mes classes :

Code:

// Zend_Db_Table
class Olfp_Table_Tutorat_Users extends Zend_Db_Table_Abstract
{
    protected $_schema = 'base';
    protected $_name = 'utilisateur';
    protected $_primary = 'idutilisateur';
    protected $_rowClass = 'Olfp_Table_Tutorat_Row_User';
        protected $_rowsetClass = 'Olfp_Table_Tutorat_Rowset_User';

....
}

// Zend_Db_Table_Rowset
class Olfp_Table_Tutorat_Rowset_User extends Zend_Db_Table_Rowset{}

// Zend_Db_Table_Row
class Olfp_Table_Tutorat_Row_User extends Zend_Db_Table_Row{}

----------------------------
Si je commente mes declaration de de [$_rowClass] et de $[_rowsetClass] dans ma classe Db_Table tout fonctionne, mais sinon voici l'erreur que j'ai :

Code:

Fatal error: Uncaught exception 'Zend_Exception' with message 'File "Olfp\Table\Tutorat\Row\User.php" was loaded but class "Olfp_Table_Tutorat_Row_User" was not found in the file' in C:\wamp\php\Zend\Loader.php:98 Stack trace: #0 C:\wamp\php\Zend\Db\Table\Rowset\Abstract.php(120): Zend_Loader::loadClass('Olfp_Table_Tuto...') #1 C:\wamp\php\Zend\Db\Table\Abstract.php(1031): Zend_Db_Table_Rowset_Abstract->__construct(Array) #2 C:\wamp\php\Zend\Db\Table\Abstract.php(985): Zend_Db_Table_Abstract->fetchAll('((`idutilisateu...') #3 C:\wamp\www\demo_app\application\bootstrap.php(98): Zend_Db_Table_Abstract->find(107) #4 C:\wamp\www\demo_app\index.php(2): include('C:\wamp\www\dem...') #5 {main} thrown in C:\wamp\php\Zend\Loader.php on line 98

---------------------------------------
Quelqu'un peu m'aider ?

Dernière modification par arthemisia (06-02-2008 10:32:39)

Hors ligne

 

#2 06-02-2008 10:54:16

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: Problem de Class avec Zend_DB_Table

Est ce que tes classes Olfp_Db_Table_Tutorat_Row(set)_User sont définies dans les fichiers correspond i.e. Olfp/Db/Table/Tutorat/Row(set)/User.php, enfin c'est ce que je comprends de ton message d'erreur.

Personellement, je changerai les noms de tes classes par :
Olfp_Db_Table_Tutorat_User_Row
Olfp_Db_Table_Tutorat_User_Rowset

Ca permet de regrouper les informations plutot par leur representation plutot que par le ascendance, plus simple aussi a reprendre.

Si tu as de nouveau besoin de ta representation de ton utilisateur, tu recuperes le dossier User ainsi que le fichier User.php plutot que de prendre le fichier User.php a la racine, celui qui se situe dans le repertoire Rowset et celui contenu dans le dossier Row.

Après chacun voit midi à sa porte tongue

Hors ligne

 

#3 06-02-2008 11:39:20

arthemisia
Nouveau membre
Date d'inscription: 06-02-2008
Messages: 6

Re: Problem de Class avec Zend_DB_Table

tout d'abord merci pour ta reponse. J'ai tout remis dans le repertoir [User]. J'ai repris l'arbo comme une appli que j'ai downloadé pour voir comment mettre mon arbo en place.

donc j'ai maintenant :

Code:

dans : Olfp/Table/Tutorat/
User/
--- Users.php
--- Row.php
--- Rowset.php

J'ai bien changé ma declaration des row et rowset :

Code:

protected $_rowClass         = 'Olfp_Table_Tutorat_User_Row';
protected $_rowsetClass     = 'Olfp_Table_Tutorat_User_Rowset';

Et oui la classe est bien presente :

fichier "Olfp/Table/Tutorat/User/Row.php" :

Code:

<?
class Olfp_Table_Tutorat_User_Row extends Zend_Db_Table_Row
{}
?>

Si je place la declaration de ma Row dans le meme fichier que ma Table tout fonctionne... !!!

----------------------
Bon en fait meme si cela fonctionne, je me pose une question. La gestion des tables par cette methode est sympa mais apres j'ai ma classe Usager, comment faire le mapping entre une Row et un Usager ? Est-ce que je m'embarque pas dans qqchose de monstrueu ?
J'avais commencé en PHP4 a faire tout dans ma classe Usager (getById, update, select, etc...). Et là je teste Zend pour passer mon Appli en PHP5... Quelle serait la meilleur chose ?

Hors ligne

 

#4 06-02-2008 12:51:12

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Problem de Class avec Zend_DB_Table

ZendFramework propose une solution générique d'ORM.

Cependant, il est tout à fait possible de la personnaliser.
Cela se ressent notamment au niveau de la phase de conception d'un projet, c'est donc des choix de techniques de conception qui sont spécifiques à des projets.

Il est donc difficile de répondre à ce genre de question, mais en revanche, se pencher sur un produit annexe, tel que Struts pour Java, ou encore Rails pour Ruby, apportent souvent beaucoup de réponses.

Sinon, Sekajin, Philippe et moi-même écrivons souvent des articles visant à donner des idées sur des cas concrêts précis.
Tu trouveras des infos ici et ou encore à cet endroit, donc

Hors ligne

 

#5 06-02-2008 14:19:59

arthemisia
Nouveau membre
Date d'inscription: 06-02-2008
Messages: 6

Re: Problem de Class avec Zend_DB_Table

Ok merci bien pour ces infos, je découvre petit a petit le ZF et j'ai peur de pas partir dans la bonne direction...
Enfin bref.
Sinon pour rester dans le sujet, une dernière question :

Comment a partir d'un objet Row style User_Row on peu recuperer un objet Olfp_User par exemple ?

Je m'explique, mon objet Table, Rowset et Row me serve a recuperer les infos en base, mais ensuite pour la manipulation j'utilise un objet Olfp_User.

Est ce que mes 2 objets sont identiques dans leur fonctionnement ?

Hors ligne

 

#6 06-02-2008 14:46:02

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: Problem de Class avec Zend_DB_Table

Quelles est la réelle différence entre User_Row et Olfp_User .

User_Row est une représentation de ta "ligne" de ta table correspondante avec des méthodes pré-écrites qui te permet de faire des traitements type SGBD (ajout, maj, suppression).

Hors ligne

 

#7 06-02-2008 14:52:09

arthemisia
Nouveau membre
Date d'inscription: 06-02-2008
Messages: 6

Re: Problem de Class avec Zend_DB_Table

Mon Olfp_User me ser par exemple a recuperer le mail, tester si ses dates d'acces son bon, afficher ses infos dans les vues, etc...
Je peut faire heriter mon olfp_user avec le row_abstract en fait, non ?

arf, y'aurait il un exemple concret pour ca qqpart ?

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