Il y a un moment maintenant, je vous avais présenté un plugin Jelix permettant de faciliter l'utilisation des librairies du Zend Framework.
Comme ce plugin pourrait servir à bien d'autres que moi et permettre aux Jelixians d'avoir à disposition les librairies intéressantes du Zend Framework, il a été finalement intégré directement dans Jelix. Il sera donc disponible dans la version 1.1 (et dès demain dans les nightly build du trunk).
Pour l'utiliser :
- copier le fichier lib/jelix/plugins/coord/zendframework/zendframework.coord.ini.php.dist vers votreappli/var/config/zendframework.coord.ini.php
- configurer la variable zendLibPath dans ce fichier de configuration
- activer le plugin dans le fichier de configuration de votre application :
[coordplugins]
zendframework = zendframework.coord.ini.php
Comme vous ne voudrez certainement pas charger inutilement le loader du Zend Framework à chaque action de votre application, il faudra explicitement déclarer que vous voulez vous servir de ses librairies. Cela se fait avec la variable de classe $pluginParams du controller (ici je n'active le ZF que pour l'action fooPdf de mon controller) :
public $pluginParams = array('fooPdf' => array('zf.active' => true));
Ensuite libre à vous, dans votre action ou dans une classe métier qui sera utilisée dans cette action, d'utiliser les librairies du ZF. Je reprends l'exemple que j'avais précédemment donné avec Zend_Pdf :
function fooPdf() {
$rep = $this->getResponse('binary');
Zend_Loader::loadClass('Zend_Pdf');
$pdf = new Zend_Pdf();
$pdf->pages = ($page = $pdf->newPage('A4'));
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
$page->setFont($font, 32);
$page->drawText('Zend Framework with Jelix !', 120, 500);
$rep->content = $pdf->render();
$rep->outputFileName = 'fooo.pdf';
$rep->mimeType = 'application/pdf';
return $rep;
}
Dans ce cas précis il n'est pas exclu que je propose une réponse personnalisée jResponseZfPdf pour mapper de manière plus élégante l'utilisation des pdf dans Jelix avec Zend_Pdf.