Zend Frameword - MVC - Problème avec bibliothèque FPDF

Zend Frameword - MVC - Problème avec bibliothèque FPDF - PHP - Programmation

Marsh Posté le 17-04-2013 à 15:38:50    

Bonjour,
 
Je créé un système d'envoi de messages, mises à jour dans une base de données en me basant sur le Zend Framework 1.11.11, en utilisant le pattern MVC. Tout fonctionne, le moteur, les requêtes etc. On m'a demandé d'ajouter un module de création de PDF (pour pouvoir sortir à la demande la liste des tickets actifs par exemple). Pour cela, j'ai donc inclus la librairie fpdf, j'ai créé un contrôleur pdfcontroller, et une classe mypdf pour "driver" tout ça.
Sauf que je me retrouve à l'appel de la page avec un message d'erreur qui est le suivant :  
 
Notice: Undefined property: MyPdf::$titre in /www/htdocs/InfoNaut/application/models/MyPdf.php on line 11 FPDF error: Some data has already been output, can't send PDF file
 
voici l'extrait du code de l'index.php, pour préciser la localisation de la librairie  

Code :
  1. defined('LIBRARY_PATH')
  2.     || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));


Le PdfController :  

Code :
  1. <?php
  2. //appel des modeles necessaires
  3. require_once (APPLICATION_PATH."/models/Tavurnav.php" );
  4. require_once(APPLICATION_PATH."/models/Tavurnavlocal.php" );
  5. require_once(APPLICATION_PATH."/models/Tavirade.php" );
  6. require_once(APPLICATION_PATH."/models/Tavinav.php" );
  7. //appel librairie fpdf
  8. require_once (LIBRARY_PATH."/fpdf17/fpdf.php" );
  9. class PdfController extends Zend_Controller_Action
  10. {
  11. public function init()
  12.     {
  13.     }
  14. public function indexAction () {
  15.    $this->view->message = "contrôleur par défaut";
  16.  }
  17. public function afficheavurnavAction()
  18. {
  19.  //TODO
  20.  }


La classe MyPdf, localisée avec les modèles :

Code :
  1. <?php
  2. require_once (LIBRARY_PATH."/fpdf17/fpdf.php" );
  3. class MyPdf extends FPDF
  4. {
  5. public function Header()
  6. {
  7.  $this->SetFont('Times','B',18);
  8.  $this->Cell(80);
  9.  $this->Cell(30,10,$this->titre,0,0,'C');
  10.  $this->Ln();
  11.  $this->Cell(30,10,"Mon sous titre",1,0,'C');
  12.  $this->Ln();
  13. }
  14. }


Et pour finir, la page phtml d'appel du pdf (pour le moment, juste un pdf vide avec un titre et un sous-titre)

Code :
  1. require_once(APPLICATION_PATH."/models/MyPdf.php" );
  2. $pdf = new MyPdf();
  3. $pdf->AddPage();
  4. $pdf->titre = "Titre test";
  5. $pdf->Output();


Le problème se situe visiblement dans la classe MyPdf sur le $this->titre. En effet, lorsque je rentre un titre en dur $this->Cell(30,10,$"un titre",0,0,'C'); par exemple, ça fonctionne bien.  
Merci pour l'aide apportée

Reply

Marsh Posté le 17-04-2013 à 15:38:50   

Reply

Marsh Posté le 17-04-2013 à 19:51:03    

Tu affectes comment la valeur à l'attribut titre ?
 
Dans ta classe on ne voit même pas la déclaration de cet attribut, ni d'affectation de valeur dans une méthode.

Reply

Marsh Posté le 18-04-2013 à 15:59:46    

bistouille a écrit :

Tu affectes comment la valeur à l'attribut titre ?
 
Dans ta classe on ne voit même pas la déclaration de cet attribut, ni d'affectation de valeur dans une méthode.


Résolu, l'erreur ne venait pas de là du tout, ça ne gêne en rien l'attribut. C'était encore plus couillon que ça...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed