PHP

Fuseaux horaires avec PHP et MySQL

Représentation des dates

Pour localiser un événement précisément dans le temps, on a besoin de trois informations : la date (16/08/2011 par exemple), l'heure (18:12:00) et le décalage par rapport au temps universel coordonné (UTC). Dans un entête de courrier électronique, par exemple, la date d'expédition est encodée de la façon suivante :

Etiquettes:

array_unique sensible à la casse ?

Question du jour : array_unique est-il sensible à la casse ? array_unique est une fonction PHP qui permet de supprimer des doublons dans un tableau PHP.

Réponse :

Etiquettes:

Problème APC / PhpMyAdmin

Apparemment APC et PhpMyAdmin ne font pas bon ménage. Dès que j'active APC, je me retrouve avec des pages blanches quand je veux accéder à PhpMyAdmin. Pour contourner le problème, j'ai utilisé une nouvelle fonctionnalité de PHP 5.3 : les sections [HOST=].

Etiquettes:

Zend_Test : récupérer les messages d'erreur d'un formulaire

Lors d'un test unitaire, il peut arriver que la soumission d'un formulaire échoue. Cela peut être du au passage via POST d'une valeur qui n'est pas considérée comme valide par le formulaire. Pour identifier la source du problème, vous êtes obligé d'examiner la réponse HTML pour retrouver d'éventuels messages d'erreurs, ce qui n'est pas très pratique. Le mieux ce serait de retrouver l'objet form qu'on a passé à la vue. C'est possible en passant par le ViewRenderer :

<?php
$vr 
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$view $vr->view;
$form $vr->form;
?>

Vous pouvez ensuite utiliser la méthode getMessages pour récupérer les messages d'erreur et les afficher sur la console :

<?php
$this
->assertXXX(..., print_r($form->getMessages(), true));
?>

PHP : nombre à virgule flottante en tant que clé d'un tableau

<?php
$test 
= array(3.1415 => 'abc');
var_dump($test);
?>

A votre avis, qu'est ce qui est affiché ?

Etiquettes:

Paramètres à vérifier pour l'upload de fichiers avec PHP

Pour uploader un gros fichier avec PHP, vous devez vérifier un certain nombre de paramètres de configuration et vous assurer que votre formulaire est correct. Voici une liste que j'espère exhaustive des points à vérifier :

Etiquettes:

Déboguer un test unitaire PHPUnit avec NetBeans et XDebug

Dans phpunit.bat, ajoutez la ligne suivante au début du fichier :

SET XDEBUG_CONFIG=idekey=netbeans-xdebug

Ensuite dans les propriétés de votre projet, allez dans la catégorie Run Configuration, bouton Advanced... et choisissez Do Not Open Web Browser.

Vous pouvez alors lancer le débogage, puis lancez votre test. NetBeans devrait s’arrêter sur la première ligne.

Etiquettes:

Utilisation de __invoke dans le Zend Framework 2

__invoke est une nouvelle méthode magique introduite par PHP 5.3. En bref, elle permet d'appeler un objet comme si c'était une fonction. Cette fonctionnalité est utilisée dans plusieurs classes du ZF2 comme les filtres. Voici un petit exemple avec Zend\Filter\Boolean :

Etiquettes:

Renommer une clé dans un tableau PHP

Oui, je sais c'est pas souvent qu'on doit faire ce genre d'opération, mais en travaillant avec MongoDB, je suis tombé sur la problématique suivante : dans MongoDB, l'identifiant des documents générés automatiquement se nomme _id. Pour conserver le nom de clé primaire que j'utilise habituellement avec des SGBDR classiques (id), je suis amené à devoir renommer une clé d'un tableau.

J'ai procédé ainsi :

<?php
// Crée une nouvelle clé avec le contenu de l'ancienne
$data['id'] = $data['_id'];
// Supprime l'ancienne
unset($data['_id']);
?>

Pas super élégant, mais ça fonctionne. Vous avez mieux ?

Etiquettes:

Propriétés en PHP

En C#, il y une fonctionnalité que j'apprécie particuliérement. C'est la possibilité de définir des propriétés :

class MyClass
{
    protected string _myProperty;
 
    public string MyProperty
    {
        get
        {
            return _myProperty.ToUpper();
        }
        set
        {
            _myProperty = value;
        }
    }
}

Pages

Subscribe to RSS - PHP