RFC: Group Use Declarations

Voici une RFC qui proposait d’ajouter une possibilité syntaxique à PHP, visant à faciliter l’utilisation d’espaces de noms : Group Use Declarations

Pour résumer, cette RFC partait du constat qu’écrire de multiples utilisations d’espaces de noms à plusieurs niveaux de profondeur entraîne une longueur de code impressionnante. Elle proposait donc l’introduction d’une nouvelle syntaxe, qui permettrait de réduire l’espace utilisé par ces use multiples et de rendre le code moins verbeux.

Par exemple, la portion de code suivante :

use Doctrine\Common\Collections\Expr\Comparison;
use Doctrine\Common\Collections\Expr\Value;
use Doctrine\Common\Collections\Expr\CompositeExpression;

Pourrait être ré-écrite de la manière suivante :

use Doctrine\Common\Collections\Expr\{ Comparison, Value, CompositeExpression };

La RFC présente d’autres cas d’exemples, avec des « use ... as ...« , des use function ou const et montre que la syntaxe n’est pas limitée au dernier niveau de chaque espace de noms. Elle répond également à certains retours « communs » sur la proposition et sa syntaxe.

Les votes ont été ouverts le 11 février 2015 et pour être clôturés le 25 février, avec deux options :

  • « Oui », avec un \ à la fin de l’inclusion (le dernier : dans l’exemple reproduit plus haut ...\Expr\{} ),
  • « Oui », sans cet \ à la fin de l’inclusion — on aurait donc ...\Expr{}
  • Et, bien sûr, « non »

Les discussions que nous avons menées sur notre mailing-list ne nous ont pas permis d’atteindre un consensus et nous avons exprimé sur internals@ les principaux arguments auxquels nous étions arrivés.

Une majorité de 2/3 était requise pour son adoption, et cette RFC a été approuvée avec les résultats suivants :

  • Oui, avec un \ à la fin de l’inclusion : 32 voix;
  • Oui, sans le \ à la fin de l’inclusion : 7 voix;
  • Non : 19 voix

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.