wkhtmltopdf pour Debian 6

wkhtmltopdf est une librairie opensource permettant de générer des fichiers PDF à partir de fichiers HTML. C’est la librairie qui offre, à mon sens, le meilleur rendu PDF : elle intègre le moteur de rendu webkit (celui de Safari). Elle est donc en théorie capable de rendre le PDF conforme au HTML que vous voyez à l’écran sur Safari.

Contrairement aux librairies PHP que l’on peut utiliser (FPDF, TCPDF, mPDF ou HTML2PDF), cette librairie (écrite en C++ et basée sur Qt) doit être compilée pour pouvoir être exécutée sur votre serveur.

Le site officiel de wktmltopdf propose des versions compilées pour les distributions récentes (Debian 7 et 8, ainsi que Ubuntu 12.04 et 14.04, Windows Vista et +, Mac OSX 10.6 et +), mais pas pour les versions plus anciennes, on n’a pas d’autres choix que de la compiler soit même.

Afin de vous épargnez cette tâche un peu compliquée et surtout longue (il faut 2h pour la compiler sur une VM), je vous propose de la télécharger ici, compilée pour Debian 6.0.10.

wkhtmltopdf pour Debian 6 64 bits – 16.7 Mo (v0.12.2.1 – 64 bits)

wkhtmltopdf pour Debian 6 32 bits – 16.7 Mo (v0.12.2.1 – 32 bits)

ORM Designer : Editez visuellement vos entités Doctrine (et autres…)

Que vous développiez vos sites grâce aux frameworks Symfony 2 ou Zend ou que vous utilisiez simplement Doctrine ou Propel comme outil d’ORM par exemple, vous n’allez plus pouvoir vous passer d’ORM Designer.

L'interface d'ORM Designer sous MAC OS.

L’interface d’ORM Designer sous MAC OS.

ORM Designer (http://www.orm-designer.com/, 295€) est un outil qui vous permettra de gérer visuellement les différents objets de votre projet et leurs relations. Mais s’il s’agit d’un outil très pratique et bien réalisé pour générer vos modèles conceptuels de données (MCD) ou autre schémas de bases de données relationnelles, c’est dans une autre de ses nombreuses fonctionnalités que vous allez apprécier la puissance d’ORM Designer : il génère à votre place les fichiers de vos entités.

Je l’utilise principalement pour des projets sous Symfony2 et il me fait gagner beaucoup de temps. En effet, c’en est fini de la fastidieuse étape de rédaction de ce genre de lignes pour une propriété de votre entité :


/**
* @ORM\ManyToOne(targetEntity="PROJECT\CoreBundle\Entity\Company", inversedBy="user")
* @ORM\JoinColumn(name="company_id", referencedColumnName="id", nullable=false)
*/
private $company;

 

ORM Designer va générer pour vous tout le code de votre entité. Il vous suffira ensuite d’exécuter les habituelles commande de la console Symfony2 pour générer les getters et les setters :

> php console doctrine:generate:entities <MONENTITE>

 

et pour mettre à jour la base de données

> php console doctrine:schema:update --force

 

Et si vous décidez de rajouter des propriétés ou des relations, il vous suffira de faire la modification sur l’éditeur visuel puis de mettre à jour les fichiers via ORM Designer. C’est fiable et performant : ça fait gagner énormément de temps sur vos projets possédant beaucoup d’objets et de relations.

Bien sûr, son prix élevé de 295 € H.T. le destine principalement à une cible professionnelle amenée à l’utiliser fréquemment mais au vu du temps qu’il vous fera gagner, il s’agit à mon sens d’un investissement à considérer.

Il est donc compatible avec les frameworks PHP :

et avec les frameworks ORM Suivants :

Vous pouvez télécharger une version d’essai de 14 jours ici : http://www.orm-designer.com/download-orm-designer ou acheter la version complète ici : https://secure.orm-designer.com/core/buy

Tutoriel : Communiquer avec la nouvelle API 1.1 de Twitter

Langages et versions : PHP 5.x

Difficulté : Moyenne

 

Ce mois-ci (juin 2013), Twitter  a décidé de basculer son API vers sa nouvelle version (1.1), en coupant désormais certains fonctions de la version précédente (1.0).

Cette nouvelle API, sensée améliorer les performances générales de la plateforme, ajoute des contraintes aux développeurs de sites et/ou d’applications qui utilisaient le service de micro-blogging. Toutes les applications sont concernées, aussi bien les applications complexes (genre client mobile ou desktop) que les petits widgets de remontée des derniers tweets par exemple (qui seront donc également appelés « application » dans le reste de cet article).

Lire la suite…