planetePHP.fr
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.

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

Baromètre des salaires #3, en collaboration avec Human Coders

La deuxième édition, qui avait récupéré un nombre impressionnant de réponses, nous avait permis d'affiner nos résultats sur les salaires des développeurs PHP, leur localisation géographique, leur statut dans l'entreprise, etc...

Cette troisième édition AFUP-Human Coders va cette fois proposer aux développeurs d'autres spécialités de répondre également ! Au cours de 20 questions (dont 10 sont obligatoires) participez à l'étude référence sur le positionnement salarial des différentes professions de notre écosystème. Où vous situez vous ? Quelles sont les spécialisations les mieux rémunérées ? Quel type d'entreprise rétribue le mieux ses salariés et de quelle manière? Quelle est la structure la plus courante des rémunérations ?

Bien entendu, ces réponses resteront anonymes et ne serviront qu'à l'établissement de l'étude, dont les résultats seront dévoilés en novembre 2015.

L'AFUP est ravie de collaborer avec Human Coders, le centre formation pour développeurs, pour cette troisième édition du baromètre des salaires ! 

Consultez les résultats du baromètre 2014 sur notre site, et participez à l'enquête 2015. Merci de votre aide ! 

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

Performance et Profiling PHP avec Blackfire pour le prochain RDV AFUP Lyon

L’AFUP Lyon a ainsi convié Nicolas Grekas, CTO de la team Blackfire chez SensioLabs, pour donner une présentation intitulée "Performance et Profiling PHP avec Blackfire".
Présentation et explicitation du sujet par le conférencier lui-même : "Savez-vous vraiment comment se comporte votre code à l’exécution ? Le seul moyen d’en être sûr est de le mesurer, et cela débouche souvent sur des surprises. Lors de cette présentation, nous découvrirons Blackfire, un nouvel outil qui simplifie drastiquement la collecte et la compréhension de profils de performance PHP. Après avoir fait l’état de l’art sur le sujet (XHProf, Xdebug), nous ferons un tour d’horizon des principales innovations de l’outil : expérience utilisateur simplifié, agrégation, visualisation de graphes, mise en avant des bottlenecks, comparaison de profils, etc. Voilà le moyen de mettre des nombres réels en face des intuitions – et d’agir en connaissance de cause."

Vous avez envie d'en être ? Rendez-vous le 4 mars à 19h, à Epitech Lyon. Attention, rendez-vous gratuit mais sur inscription

L'AFUP en profite pour applaudir le dynamisme de l'antenne lyonnaise, et vous souhaite une bonne soirée PHP !


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