Publié par Maxence le lun, 08/02/2010 - 09:09
Lorsque je parcoure le code du Zend Framework, je vois souvent des conditions écrites sous cette forme :
<?php
if (0 == $argc) {
// ...
}
?>
Publié par Maxence le sam, 09/01/2010 - 17:05
Une petite astuce pour tester un contrôleur qui génère du PDF. Pour s'assurer que c'est bien du PDF qui est envoyé, on peut utiliser Zend_Pdf qui est capable de charger un document existant :
<?php
$this->dispatch('/moncontrolleur/1/pdf');
$this->assertResponseCode(200);
$this->assertHeaderContains('Content-type', 'application/pdf');
$pdf = Zend_Pdf::parse($this->getResponse()->getBody());
$this->assertEquals('MonProgramme', $pdf->properties['Creator']);
?>
Si le PDF n'est pas correct, Zend_Pdf lancera une exception : Zend_Pdf_Exception: File is not a PDF. On peut également vérifier les propriétés du PDF et le nombre de pages. Par contre, on ne peut pas accéder au contenu du PDF pour vérifier le texte qu'il contient.
Publié par Maxence le ven, 08/01/2010 - 14:53
Ah les arrondis ! On pourrait penser que c'est très simple mais comme souvent le diable se cache dans les détails.
Prenons par exemple la méthode round de PHP. Elle nous propose 4 types d'arrondi :
<?php
// Arrondi vers l'infini (méthode par défaut: PHP_ROUND_HALF_UP)
echo round(1.244, 2) . "\n"; // Affiche 1.24
echo round(1.246, 2) . "\n"; // Affiche 1.25
echo round(1.245, 2) . "\n"; // Affiche 1.25
echo round(-1.245, 2) . "\n"; // Affiche -1.25
// Arrondi vers zéro
echo round(1.245, 2, PHP_ROUND_HALF_DOWN) . "\n"; // Affiche 1.24
echo round(-1.245, 2, PHP_ROUND_HALF_DOWN) . "\n"; // Affiche -1.24
// Arrondi bancaire (arrondi au nombre pair le plus proche)
echo round(1.245, 2, PHP_ROUND_HALF_EVEN) . "\n"; // Affiche 1.24
echo round(1.235, 2, PHP_ROUND_HALF_EVEN) . "\n"; // Affiche 1.24
// Arrondi au nombre impair le plus proche
echo round(1.245, 2, PHP_ROUND_HALF_ODD) . "\n"; // Affiche 1.25
echo round(1.235, 2, PHP_ROUND_HALF_ODD) . "\n"; // Affiche 1.23
?>
Publié par Maxence le ven, 04/12/2009 - 15:05
Je viens de tomber sur un méchant bogue dans mon application. Il est du à une subtilité dans les formats ISO proposés par Zend_Date.
Le problème se situe au niveau des années. Zend_Date propose deux formats différents : yyyy et YYYY. Le premier, celui avec les y en minuscules fournit le résultat auquel on peut s'attendre, alors que le deuxième renvoie l'année dans lequel se situe la semaine !
Publié par Maxence le mer, 21/10/2009 - 16:31
Vous avez une jolie application Web et vous souhaitez fournir une API ? Rien de plus simple avec Zend_Json_Server. Ce composant du Zend Framework permet de mettre en place une API utilisant le protocole JSON-RPC.
Publié par Maxence le mar, 13/10/2009 - 10:48
Ca fait un moment que je n'ai pas blogué, je vais me rattraper avec un petit tutoriel sur Zend_Navigation. Je vous propose de réaliser un menu à deux niveaux similaire à celui qu'on trouve par exemple sur le site de Libération, le javascript en moins.
Publié par Maxence le dim, 20/09/2009 - 13:45
Mongo DB est une base de donnée orientée documents. A la différence des bases de données traditionnelles qui stockent leurs données dans des tables, Mongo DB utilise des collections d'objet (au format JSON). L'avantage de cette disposition, c'est que les colonnes n'ont pas à être fixées à l'avance et que chaque objet dans une collection peut avoir ses propres colonnes. Une base Mongo DB ne nécessite donc pas de schéma.
Publié par Maxence le lun, 14/09/2009 - 13:49
Ce week-end je m'apprêtait à développer un système de plugin pour Zend_Db_Table quand j'ai eu la présence d'esprit de consulter la feuille de route du ZF (http://framework.zend.com/roadmap). Bien m'en a pris car ce composant est justement prévu pour la prochaine version du framework (1.10). Il a même failli être intégré à la 1.9.
Publié par Maxence le lun, 07/09/2009 - 09:54
Ça y est, les vacances sont finies. 15 jours sans Internet, ça fait du bien. Comme d'habitude, j'en ai profité pour lire quelques bouquins. Celui dont je vais vous parler aujourd'hui est consacré au framework PHP Symfony.
Publié par Maxence le lun, 17/08/2009 - 11:11
Je ne sais pas pour vous, mais moi je ne trouve pas ça particulièrement élégant de toujours devoir passer par $this pour accéder à mes variables de vues.
Heureusement, dans le bestiaire des fonctions PHP, on dispose d'une fonction nommée extract qui crée des variables à partir d'un tableau. En la combinant à la méthode getVars de Zend_View qui permet d'obtenir l'ensemble des variables assignées à une vue, on peut exporter ces dernières sous la forme de variables locales.
Pages