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:

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>
voici mon controlleur:
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');
 
}
}
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
 
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
si j'enleve ma variable vue une page pdf est generé qui s'apelle index.php, je comprend pas.
voici ma classe view:
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");
    }
  }
 
 
}
et mon routeur:
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();
      }
....
voici mon arborescence:
Nom : Capture.PNG
Affichages : 476
Taille : 14,4 Ko

Merci beaucoup de votre aide car la je patauge!!