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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
<?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 : 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
<?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 :

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