planetePHP.fr
PHP Internals en français PHP Internals en français 2015-03-03T08:30:07+01:00

RFC: Remove the date.timezone warning

La RFC Remove the date.timezone warning partait du constat qu’il existe à l’heure actuelle une directive de configuration qui nécessite d’être définie afin de pouvoir lancer PHP sans erreur : date.timezone.

Lorsque cette directive n’est pas configurée, une erreur de type warning est générée par PHP, même si le moteur lui attribue une valeur par défaut (UTC).

Le but de cette RFC était de supprimer cette erreur, afin de pouvoir fournir à PHP une installation paramétrée complète par défaut. En effet, il apparaît que de nombreuses autres directives, bien plus sensibles notamment en terme de sécurité, sont d’ores et déjà configurées par défaut.

Il nous semblait que l’absence de configuration de cette directive devait à minima générer une erreur stricte, car elle impacte des fonctions de date très usitées (telle date()), d’autant que la zone par défaut est aujourd’hui définie de manière arbitraire. Nous avons donc répondu en ce sens sur internals@.

Néanmoins, avec 32 votes pour et 11 contre, cette RFC est passée et l’avertissement correspondant ne sera donc plus levé à partir de PHP 7.

Pascal Martin (n+1).zéro Pascal Martin (n+1).zéro 2015-03-03T00:00:00+01:00

PHP 7 et processus d'évolution de PHP : slides de ma présentation à l'AperoPHP lyonnais du 25 février

Toutes les fin de mois1, l’antenne lyonnaise de l’AFUP organise un ApéroPHP :

Les apéros PHP sont ouverts à tous, quelque soit le niveau, le but est de rencontrer d’autres développeurs PHP de la région lyonnaise,
de boire un verre ensemble, de discuter de tout et de rien, en fonction des envies de tout le monde.

Lors de l’Apéro du 25 février 2015, j’ai eu l’occasion de donner une présentation, où j’ai parlé des nouveautés apportées par PHP 7, la prochaine version majeure de notre langage de prédilection, ainsi que du processus d’évolution de PHP, notamment à travers la mailing-list internals@.

Les slides que j’ai utilisés comme support sont disponibles en ligne2 : PHP 7 et processus d’évolution de PHP : slides de ma présentation à l’AperoPHP lyonnais du 25 février.



  1. En théorie, les ApéroPHP lyonnais ont lieu le 29 de chaque mois. En pratique, la date varie un peu, mais c’est généralement vers la fin du mois. Rendez-vous sur aperophp.net, ou suivez l’AFUP Lyon sur Twitter : @AFUP_lyon

  2. Pour ceux qui voudraient plus d’informations que les slides en eux-même, j’ai noté quelques points dans les notes du présentateur, accessibles via la touche s

PHP Internals en français PHP Internals en français 2015-02-24T08:30:09+01:00

RFC : Skipping optional parameters for functions

Ce n’est pas tout à fait la première fois que le sujet était évoqué, mais avec PHP 7 en approche, voici une RFC qui est revenue sur le devant de la scène : Skipping optional parameters for functions.

Aujourd’hui, lorsque l’on souhaite appeler une fonction qui accepte des paramètres optionnels, il est impératif de spécifier la valeur de tous les paramètres jusqu’au dernier qui nous intéresse — y compris si nous voulons utiliser la valeur par défaut des précédents.

Par exemple, considérons une fonction définie ainsi :

function ma_fonction($premier, $second = "world", $troisieme = false) {
    // la la la
}

Pour appeler cette fonction en passant true en dernier paramètre, en conservant la valeur par défaut pour le second, nous devons écrire ceci :

ma_fonction("Hello", "world", true);

Nous devons ainsi, lors de l’appel, passer la valeur "world" en second paramètre, alors que ce que nous voulions réellement faire était passer la valeur par défaut.

Cette RFC vise à répondre à cette problématique en permettant l’usage du mot-clef default à la place du passage de paramètres optionnels, pour ceux dont nous souhaitons utiliser la valeur par défaut.

L’exemple d’appel reproduit plus haut deviendrait donc :

ma_fonction("Hello", default, true);

Les votes pour cette RFC ont été ouverts le 08 février 2015 et clôturés le 21 février 2015.
Nous avons exprimé notre avis, négatif, sur internals@ : principalement, l’approche proposée nous semblait trop bidouille et nous préférerions bénéficier de paramètres nommés, même si ceux-ci n’arriveront probablement pas pour PHP 7.0 (et que la RFC citée ici n’était pas incompatible avec cette idée).
Cette RFC a finalement été rejetée, avec 17 votes « pour » et 27 votes « contre ».

Ulrich (mon-code.net) Ulrich (mon-code.net) 2015-02-24T00:00:00+01:00

Utiliser le composant Expression Language de Symfony2 dans les fichiers de services YML et XML

Cet article montre, par l'exemple, l'utilisation et la syntaxe du composant Expression Language de Symfony2 dans les fichiers de services écrit en XML ou en Yaml. Ce composant permet d'ajouter du dynamisme aux fichiers de configuration.
Pascal Martin (n+1).zéro Pascal Martin (n+1).zéro 2015-02-23T00:00:00+01:00

Ce mois-ci sur internals@php - Janvier 2015

This post should be available in English in a few days.


1468 messages ont échangés en janvier 2015 sur la mailing-list internals@ de PHP, soit quasiment le double des mois précédents — et d’ailleurs plus que tous les mois depuis que j’ai commencé à effectuer ces dépilages1 ! Voici donc un mois riche en événements, avec beaucoup d’activité autour de PHP 7 !

Sous forme d’un graphique représentant le nombre de mails par mois sur les trois dernières années, on obtient :

Nombres de mails sur internals@ ces trois dernières années
MoisNombre de mails
2012-01428
2012-02781
2012-03909
2012-041101
2012-05317
2012-06362
2012-07841
2012-08715
2012-09637
2012-10480
2012-11385
2012-12340
2013-011082
2013-02834
2013-03497
2013-04359
2013-05364
2013-06422
2013-07330
2013-08451
2013-09625
2013-10562
2013-11468
2013-12489
2014-01963
2014-02972
2014-03611
2014-04355
2014-05816
2014-06493
2014-071144
2014-08700
2014-09730
2014-10809
2014-11785
2014-12710
2015-011468


Pour commencer, les votes se sont terminés sur la RFC: PHP 5.7 qui proposait la sortie d’une version 5.7 de PHP qui aurait allongé le support de la branche 5.x et ajouté des avertissements sur les fonctionnalités qui disparaîtront avec l’arrivée de PHP 7.

la suite...

PHP Internals en français PHP Internals en français 2015-02-19T08:30:32+01:00

RFC: Combined Comparison (Spaceship) Operator

Voici un autre sujet qui avait été discuté il y a quelques temps et qui est revenu en avant dernièrement, profitant certainement de l’approche de PHP 7, avec une mise à jour de la RFC au passage : Combined Comparison (Spaceship) Operator.

Cette RFC proposait d’ajouter un nouvel opérateur <=> de comparaison combinée — opérateur fréquemment appelé spaceship operator, de par sa forme. Cet opérateur, sur le modèle déjà utilisé pour des fonctions de comparaison comme strcmp(), retournerait trois valeurs :

  • 0 si les deux opérandes sont égaux,
  • 1 si l’opérande de gauche est plus grand que celui de droite
  • -1 si l’opérande de gauche est plus petit que celui de droite.

Il fonctionnerait sur tous les types de données génériques de PHP, en suivant les règles déjà en place pour <, > et ==.

Toute une série d’exemples est donnée dans la RFC, que ce soit pour des comparaison simples, des comparaisons un peu plus avancées, ou un usage avec des fonctions dépendant d’un tri utilisateur (cet opérateur simplifierait souvent l’écriture des fonctions de comparaison utilisées par ces fonctions).

Voici cependant un exemple basique :

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

Les votes ont été ouverts le 02 février 2015 pour être clôturés le 16 février 2015 et nous avons exprimé notre avis positif sur internals@.
Cette proposition a été acceptée avec 43 votes pour et 11 votes contre.

AFUP AFUP 2015-02-19T00:00:00+01:00

Premiers noms des speakers du PHP Tour Luxembourg 2015

Si l'appel à conférenciers orientait sa thématique en particulier vers le Cloud, ce sont aussi (et surtout) PHP, ses performances, ses spécificités, ses nouveautés, qui ont l'honneur de notre programmation. 

Nous retrouverons donc Thibault Lenclos et son retour d'expérience ARTE, Wim Godden et sa conférence "The promise of asynchonous PHP", Julien Pauli pour son talk "En route pour PHP7", François Zaninotto de retour avec "Frameworks : a History of Violence", et Oswald De Riemaecker pour "Coder votre infrastructure" au sein de notre programmation.

L'appel à conférenciers est toujours en cours : déposez vos propositions avant le 28 février, minuit, et ce qu'elles traitent du Cloud en particulier, ou de PHP en général. Partagez votre expérience !

Et notez dans vos agendas : PHP Tour Luxembourg 2015, les 12 et 13 mai à l'abbaye de Neumünster. 

Gilles Février Gilles Février 2015-02-17T08:52:43+01:00

Baromètre des salaires du PHP 2015

Je parlais de la deuxième édition du baromètre des salaires publiée en 2014, dans cet article. Pour la troisième édition, l’AFUP s’associe avec Human Coders, centre de formation pour développeurs. Pour la première fois, le questionnaire n’est pas réservé aux développeurs PHP, mais est ouvert aux autres spécialités. L’objectif est entre autre de déterminer à … Continuer la lecture de Baromètre des salaires du PHP 2015
PHP Internals en français PHP Internals en français 2015-02-17T08:30:46+01:00

RFC: Fix « foreach » behavior

Voici une RFC à propos de la construction de boucle foreach : Fix « foreach » behavior

L’idée de départ de cette proposition était d’améliorer les performances de foreach (autour de 1% de gain pour certaines applications)… Mais, finalement, la RFC s’est plus orientée sur la correction d’incohérences et de comportement indéfinis.

Sans entrer dans les détails (ils sont plutôt techniques) sur cette page, il s’agit en somme d’essayer d’uniformiser quelques cas un peu tordus d’utilisation de foreach en cas d’itérations par valeurs et par références — la RFC liste ces cas, avec des exemples.

Cette RFC a été soumise à deux votes, ouverts le 05 févier 2015 pour être clôturés le 12 février 2015 :

  • le premier concernait directement la RFC, à une majorité des 2/3 des voix,
  • et le second demandait s’il faudrait cesser de modifier le pointeur tableau/objet dans foreach et nécessitait une majorité de 50% +1 voix.

Considérant que PHP 7 est une bonne occasion pour corriger des comportements étranges et apporter un peu de cohérence au langage, nous avons exprimé notre opinion, positive, sur internals@.
Les deux propositions de cette RFC ont été acceptées, toutes deux avec 34 voix pour 1 et une voix contre.

Kévin Dunglas (Lapin Blanc) Kévin Dunglas (Lapin Blanc) 2015-02-16T19:22:59+01:00

Introducing PropertyInfo: a PHP component to find types and doc of properties

PHP Beer Mug

PHP doesn’t support explicit type definition. This is annoying, especially when doing meta programming. Various libraries including but not limited to Doctrine ORM and the Symfony Validator provide their own type managing system. Another common way to describe type(s) of a property is integrated documentation aka PHPDoc.

The PHP Property Info library extracts various information including the type and documentation from PHP class properties from metadata of popular sources including:

  • Setter method with type hint
  • PHPDoc’s DocBlock
  • Doctrine ORM mapping (annotation, XML, YML or custom format)

Thanks to the visitor pattern, adding support for other metadata source is easy, and Pull Requests are welcome!

As usual, this library is freely available (MIT license) on my GitHub page.

As you maybe know, I’m working on a new way to build hypermedia REST API with Symfony (an experimental release is already available: DunglasJsonLdApiBundle). This bundle will leverage PHP Property Info and the Symfony Serializer Component that will be shipped in Symfony 2.7 to allow powerful deserialization.


Flux ATOM

Flux RSS
Twitter

Les sources

Ajouter une source ?

Envoyez un email avec l'URL du site et du flux à planetephpfr AT afup POINT org

Infos