Bonjour , j'ai un site en php mvc orienté objet.
J'ai installé Html2pdf via composer et j'ai regardé la doc,suivi des tutos, mais je n'arrive pas a l'adapter a ma structure mvc.
j'ai créé une page cv.php pour mettre la structure html de ma page:
voici mon controlleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php require"controller/PdfController.php"; ?> <?php ob_start() ?> <page backtop="20mm" backleft="10mm" backright="10mm" backbottom="20mm"> <table> <tr style="background: #FF0000;"> <td style="width:75%">Salut</td> </tr> </table> </page>
J'ai une classe view qui me gere la vue mais je n'arrive pas a l'utiliser dans ce cas j'ai des erreurs.
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 use Spipu\Html2Pdf\Html2Pdf; use Spipu\Html2Pdf\Exception\Html2PdfException; use Spipu\Html2Pdf\Exception\ExceptionFormatter; //require_once "html2pdf/html2pdf.class.php"; require "vendor/autoload.php"; class PdfController{ public function pdf() { //Ma vue en mvc $view = new \Folio\View('pdf'); $view->generer([]); //la vue dans la doc html2pdf $content = ob_get_clean(); $pdf = new Html2Pdf('P', 'A4', 'fr'); $pdf->pdf->SetDisplayMode('fullpage'); $pdf->writeHTML($content); $pdf->output('cv.pdf'); } }
si j'enleve ma variable vue une page pdf est generé qui s'apelle index.php, je comprend pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fatal error: Uncaught Error: Class 'Folio\Exception' not found in C:\wamp64\www\cv\view\frontend\View.php:44 Stack trace: #0 C:\wamp64\www\cv\view\frontend\View.php(20): Folio\View->genererFichier('view/frontend/p...', Array) #1 C:\wamp64\www\cv\controller\PdfController.php(15): Folio\View->generer(Array) #2 C:\wamp64\www\cv\app\Routeur.php(68): PdfController->pdf() #3 C:\wamp64\www\cv\index.php(13): Stephan\Routeur->checkUrl('pdf') #4 {main} thrown in C:\wamp64\www\cv\view\frontend\View.php on line 44
voici ma classe view:
et mon routeur:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <?php namespace Folio; class View { // Nom du fichier associé à la vue private $fichier; // Titre de la vue (défini dans le fichier vue) private $title; public function __construct($action) { // Détermination du nom du fichier vue à partir de l'action $this->fichier = "view/frontend/". $action . ".php"; } // Génère et affiche la vue public function generer($donnees) { // Génération de la partie spécifique de la vue $content = $this->genererFichier($this->fichier, $donnees); // Génération du gabarit commun utilisant la partie spécifique $view = $this->genererFichier('view/frontend/template.php', array('title' => $this->title, 'content' => $content)); // Renvoi de la vue au navigateur echo $view; } // Génère un fichier vue et renvoie le résultat produit private function genererFichier($fichier, $donnees) { if (file_exists($fichier)) { // Rend les éléments du tableau $donnees accessibles dans la vue extract($donnees); // Démarrage de la temporisation de sortie ob_start(); // Inclut le fichier vue // Son résultat est placé dans le tampon de sortie require $fichier; // Arrêt de la temporisation et renvoi du tampon de sortie return ob_get_clean(); } else { throw new Exception("Fichier '$fichier' introuvable"); } } }
voici mon arborescence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ... $ctrlPdf = new \PdfController(); /*********Affichage de la page CV en pdf**********/ elseif ($_GET['action'] == 'pdf'){ session_start(); $ctrlPdf->pdf(); } ....
Merci beaucoup de votre aide car la je patauge!!
Partager