Zend Framework, que l’on peut se procurer à framework.zend.com ou par l'achat de Zend Core for i (à zend.com), est un framework open-source servant à développer des applications Web dans PHP 5. Zend Framework est à la fois une bibliothèque de composants (parce qu'il fournit des composants
Zend à votre service
autonomes, à couplage lâche) et un framework MVC, qui aide à établir la structure de base pour une application Zend Framework.
Voyons quelques-uns des composants de Zend Framework :
• Zend_Acl fournit la fonctionnalité ACL et la gestion des privilèges.
• Zend_Config simplifie l'utilisation des données de configuration pour les applications Web.
• Zend_Controller et Zend_View fournissent l'infrastructure pour les sites web MVC.
• Zend_Feed permet de travailler avec des alimentations syndiquées (live syndicated feeds).
• Zend_Filter et Zend_Validate incluent des outils de filtrage et de validation pour créer des sites Web sûrs.
• Zend_Gdata fournit l'accès en lecture/écriture aux services hébergés à google.com, comme Spreadsheets, Calendar, Blogger, et CodeSearch, en utilisant les API Google Data.
• Zend_Mail et Zend_Mime créent et envoient des messages e-mail.
• Zend_PDF crée, lit et modifie des documents PDF à partir d'applications PHP.
Examinons rapidement le module Zend_Pdf, qui offre un moteur de manipulation PDF. En incorporant ce module dans une application Web, vous pouvez préparer dynamiquement des documents en format PDF, dans le but de :
• créer un nouveau document ou en charger un ancien
• extraire une certaine révision d'un document
• manipuler des pages dans un document (par exemple, en modifier l'ordre, en ajouter, en supprimer)
• tracer des primitives (lignes, rectangles, polygones, cercles, ellipses, secteurs)
• créer du texte avec 14 polices intégrées ou avec des polices TrueType personnalisées
• appliquer la rotation à des images
• dessiner des images
• mettre à jour des fichiers PDF par incréments
Voyons maintenant comment utiliser Zend_Pdf pour créer et charger un document PDF. Voici un fragment de code PHP qui utilise Zend_Pdf :
/* Include the Zend_Pdf module */
require_once 'Zend/Pdf.php'
L'instruction require_once invoquera le fichier Pdf.php, qui contient la définition complète du module Pdf — y compris les définitions de classes et les enveloppes d'appels de fonctions. L'instruction require_once indique que le fichier ne devrait être inclus une fois. D’autres requêtes incluant le fichier échoueront.
Maintenant que le programme a la définition Framework, nous pouvons créer un nouveau document PDF vide :
/* Create a new PDF document */
$pdf = new Zend_Pdf();
La variable $pdf représente une instance de la classe Zend_Pdf, fournie par le framework. Le mot-clé new indique qu'une nouvelle instance de la classe devrait être créée, et donc la variable $pdf peut maintenant charger de nouvelles pages dans le document PDF résultant.
Pour créer un document PDF à partir d'un fichier existant, utilisez la commande
/* Load a PDF document from a file */
$pdf = Zend_Pdf::load($filename);
De même, pour charger un document PDF à partir d'une chaîne, utilisez la commande
/* Load a PDF document from a string */
$pdf = Zend_Pdf::parse($string);
Les trois appels ci-dessus (new Zend_PDF, Zend_Pdf::load, et Zend_Pdf::parse) renvoient un nouvel objet Zend_Pdf qui permettra de manipuler et de sauvegarder le document PDF résultant. Maintenant que le programme a une variable qui représente un document PDF ($pdf), voyons quelques-unes des méthodes servant à manipuler et à sauvegarder ce dernier. Dans l'instruction :
/* Add a new page to the PDF document */
$pdf->pages[] = $pdf->newPage
(Zend_Pdf_Page::SIZE_A4);
$pdf->pages fait référence à un membre public de la classe Zend_Pdf — autrement dit, $pages est une matrice dans la variable $pdf qui représente les pages dans le document PDF. Vous pouvez manipuler cette matrice comme toute autre. Le fait de référencer l'index sans une rubrique l'index (en utilisant []) ajoute la nouvelle page à la fin de la matrice. Zend_Pdf_Page fait référence à un objet dans le framework Zend_Pdf, et la variable $pdf fait référence à un objet Zend_Pdf contenant une matrice d'objets Zend_Pdf_Page (représentant les pages individuelles du document).
Nous aurions obtenu le même résultat avec l'appel suivant :
/* Add a new page to the PDF document */
$pdf->pages[] = new Zend_Pdf_Page
(Zend_Pdf_Page::SIZE_A4);
Ceci supprimerait la page 5 du PDF :
/* Remove a page from the PDF */
unset($pdf->pages[5]);
Et cette commande sauvegarde le PDF dans le fichier indiqué par la variable $filename :
/* Save the PDF as an existing file */
$pdf->save($filename, true);
A noter que le paramètre true (facultatif) remplacera le fichier représenté par $filename, s'il existe.
Vous pouvez aussi omettre la spécification de paramètre et sauvegarder le fichier comme un nouveau :
/* Save the PDF as a new file */
$pdf->save($filename);
Dans ce cas, le document PDF sera sauvegardé dans le fichier indiqué par la variable $filename — à condition qu’il n'existe pas déjà. S'il existe, l'appel échouera.
Vous avez vu comment utiliser les frameworks pour intégrer des fonctionnalités de pointe dans vos applications PHP et accélérer leur développement. Mais sachez que vous pourrez faire beaucoup plus avec Zend_Pdf et aussi avec les autres composants de Zend Framework (et aussi d'autres frameworks disponibles pour PHP). Pour en savoir plus, commencez par examiner les exemples du Guide de référence du programmeur Zend Framework (framework.zend.com/manual/en).
Téléchargez cette ressource
Livre blanc Sécurité et Stockage des documents
Découvrez dans ce livre blanc Kyocera les outils logiciels qui permettent une approche holistique et efficace de la collecte, du stockage, de la gestion et de la sécurisation des documents en entreprise.