Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2007, 07h22   #1
Membre confirmé
 
Avatar de max44410
 
Étudiant
Inscription : juin 2003
Messages : 426
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2003
Messages : 426
Points : 259
Points : 259
Envoyer un message via MSN à max44410 Envoyer un message via Skype™ à max44410
Par défaut Probleme d'appel de fonction

Bonjour,

Voila j'ai suivi le tuto (traduit en francais) de developpez.com, concernant ZEND.
Je voulais modifier quelques trucs a ma sauce. En fait ce que je voulais faire c'est garder une trace de toutes les actions qui sont realiser sur la base de donnees.

j'ai repris les meme nom de classe que le tuto, donc pour ceux qui l'ont suivi ils vont pouvoir se retrouver rapidement dans mon code.

voila le IndexController.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
class IndexController extends Zend_Controller_Action 
{
    function indexAction()
    {
		$this->view->title = "Mes albums";
        //echo "<p>dans IndexController::indexAction()</p>";
		$album = new Album(); // on creer l'objet
// Attention j'ai remplacé fetchAll() par my_fetchAll(), methode de Album
		$this->view->albums = $album->my_fetchAll(); // affect le tableau d'albums dans une variable de la vue
    }
voici Album.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include "XmlManager.php";
 
class Album extends Zend_Db_Table
{
    protected $_name = 'album';
	private $xmlLog = null;
	/*
	Pour indiquer à Zend_Db_Table le nom de la table qu'il devra gérer, nous devons remplir la propriété
	protected $_name avec le nom de la table.
	Zend_Db_Table suppose que votre table a une clef primaire appelée "id" qui est auto incrementée.
	*/
	public function __construct(){
		$xmlLog = new XmlManager(time(), 'Open XML Log From Album object', 'log.xml');
		}
 
	public function my_fetchAll(){
		// add entry in XML logFile
		return Zend_Db_Table::fetchAll();
// j'ai essayé : return parent::fetchAll(); ca fonctionne pas non plus
		}
}
et voila XmlManager.php :

Code :
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
<?php
class XmlManager {
 
	private $document = null;
	private $nb_ligne;
	private $time_creation;
	private $comment;
	private $file_name;
 
	public function __construct ($time='', $comment='', $file_name=''){
		$this->nb_ligne = 0;
		$this->time_creation = $time;
		$this->comment = '';
		$this->file_name = $file_name;
		$this->document =  new DomDocument($file_name);
		$this->saveFile();
		}
 
	public function addEntry($time, $comment){
		//ajoute un message à l'arbre XML
		}
 
	public function saveFile() {
		$this->document->save($this->file_name);
		}
}
Lorsque je veux afficher la page d'index j'ai l'erreur suivante :

Citation:
Fatal error: Call to a member function select() on a non-object in C:\Program Files\Apache Group\Apache2\htdocs\zf-tutorial\library\Zend\Db\Table\Abstract.php on line 1064
Donc bah je suis bloqué ... je ne sais pas trop d'ou ca vient. surement des classes qui sont abstraites ou un truc comme ca ...
Ca fait un moment que je n'ai pas toucher à la POO, enfin la vrai quoi ...
Donc je veux bien avoir vos conseils.

Merci
__________________
Venez voir par là...
max44410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 07h39   #2
Membre confirmé
 
Avatar de max44410
 
Étudiant
Inscription : juin 2003
Messages : 426
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2003
Messages : 426
Points : 259
Points : 259
Envoyer un message via MSN à max44410 Envoyer un message via Skype™ à max44410
Ok ... autant pour moi ...
Comme j'ai defini un constructeur dans Album, il ne prenait plus celui de Zend_Db_Table par defaut. Donc il falait l'ajouter dans mon nouveau constructeur, ce qui donne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include "XmlManager.php";
 
class Album extends Zend_Db_Table
{
    protected $_name = 'album';
	private $xmlLog = null;
	/*
	Pour indiquer à Zend_Db_Table le nom de la table qu'il devra gérer, nous devons remplir la propriété
	protected $_name avec le nom de la table.
	Zend_Db_Table suppose que votre table a une clef primaire appelée "id" qui est auto incrementée.
	*/
	public function __construct(){
		parent::__construct();
		$xmlLog = new XmlManager(time(), 'Open XML Log From Album object', 'log.xml');
		}
 
	public function my_fetchAll(){
		// add entry in XML logFile
		return parent::fetchAll();
		}
}
Bon et bien merci quand meme
__________________
Venez voir par là...
max44410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h40.


 
 
 
 
Partenaires

Hébergement Web