Bonjour
je commence avec Zend pour la mise en place de mon site en respectant la structure MVC.
J'ai suivi le tuto pour débutant sur ce site et tout va pour le mieux. Je cherche à optimiser mon application et pour cela j'ai quelques questions à vous poser.

* Question concernant le modèle qui gère la BD
J'ai bien créé ma classe de table objet héritant de la classe Zend_Db_table avec comme attribut le nom de la table dans ma base de données. Alors j'aimerai le personnaliser en ajoutant des méthodes. En gros faire en sorte que le modèle gère tous les accès à la base en récupérant les enregistrements et tout. Dans ce cas dois-je ajouter toutes mes méthodes dans ma classe de table ?

Voici mon code pour le modèle:
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
 
<?php
 
class Poeme extends Zend_Db_Table
{
	protected $_name = 'poemes';
 
        //le reste concerne toutes les méthodes dont j'aurai besoin pour l'appli
	public function lister()
	{
	}
 
         public function lire($id)
	{
	}
        ...
 
}
* Question concernant le contrôleur
L'idée est que le contrôleur ne fasse aucune requête sql. Tout ce qu'il doit faire c'est juste instancier un objet du type modèle et toutes les actions du controleur utilisent l'objet Modèle instancié. Pour ce faire dois-je déclarer un attribut du type Modele en protected par exemple que j'initialise avec la méthode init() que je réecris?

Voici le code du controleur

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
27
28
29
30
31
32
33
 
<?php
 
class PoemeController extends Zend_Controller_Action 
{
	// Attribut 
        protected $poeme;
 
        /* Constructeur */
	public function init()
	{
		$poeme = new Poeme();
 
 
	}
 
	/* Fonction affichant la liste de tous les poèmes */
	function indexAction()
	{
		$this->view->titres = "Mes poemes";
		$this->_helper->layout->setLayout('cust');
 
		$result = $poeme->lister(); //appelle la methode lister de l'obejt poeme
		$this->view->rez = $result;
 
	}
 
        /* Fonction affichant juste un poeme */
        function lireAction()
        {
               $result = $poeme->lire(1);
               $this->view->rez = $result;
         }
Voilà le ce que j'ai implémenté, hélas qui ne marche comme je le souhaite.
Voici le message d'erreur que j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Notice: Undefined variable: poeme in C:\wamp\www\site_Patrick\application\controllers\PoemeController.php on line 28
 
Fatal error: Call to a member function lister() on a non-object in C:\wamp\www\site_Patrick\application\controllers\PoemeController.php on line 28
Donc je pense que l'action index n'arrive pas voir l'objet $poeme que je tente d'instancier via la méthode init()
quelqu'un a une idée svp?