Je vais donc commencer par la traditionnelle palanquée de corrections.

Ainsi, les bugs #5273, #53166, #53854, #53867, #53748, #53777, #53434, #52808, #52290, #53795, #53898, #49072, #53903, #53915, #53913, #53914, #53923 et #53924 ont été corrigés.

Il est donc maintenant entre autre possible d'utiliser de nouvelles propriétés dans une classeé héritant de \dateIntervalle, l'introspection gére correctement les arguments par défaut des méthodes de la classe \zipArchive ainsi que les constantes de classe définie à l'aide du mot-clef self, et l'ensemble des constantes décrivant les différents protocoles de compression disponible dans cette même classe sont maintenant exposée à l'utilisateur.

De plus, le code des traits a été améliorer afin de ne plus faire crasher PHP dans certain cas spécifiques, et le module FPM du langage gère ses logs suivant le format de la directive php_error et archive maintenant la requête ayant générée l'erreur.

J'ajouterais que la création d'un objet \DateInterval avec deux dates qui ne se suivent pas chronologiquement parlant ne provoque plus une erreur de segmentation de mémoire, et les méthodes \dateTime::setDate(), \dateTime::setISODate() et \dateTime::setTime() se comportent dorénavant correctement lorsque l'instance de la classe \dateTime a été créée à l'aide d'un horodatage.

Enfin, la connexion à une base de données mysql via SSL à l'aide du pilote mysqlnd ne provoque plus d'erreur, le message d'erreur envoyé par l'extension PHAR lorsque le répertoire dans lequel le développeur souhaite sauvegarder l'archive n'existe pas est désormais plus explicite, la fonction feof() se comporte maintenant correctement en présence d'une archive zip endommagée, et une erreur de compilation du code des flux, de la SPL et de Zip, relative à l'absence de la constante HAVE_GLOB dans certain cas, a été corrigée.

Il y a eu également au cours de cette période deux ajouts fonctionnels significatifs.

Le premier concerne l'extension SNMP, qui a été améliorée.

En effet, son code a été fiabilisé grâce à l'ajout de tests unitaires, ses fonctions renvoient maintenant une valeur de retour uniforme, à savoir false, en cas d'erreur, et il est maintenant possible de manipuler plusieurs OID en une seule fois, que ce soit pour récupérer leurs valeurs ou les initialiser.

Il est à noter que l'ajout de ces fonctionnalités avait été proposé il y a quelques temps sur internals@, preuve que parfois, les contributeurs externes sont écoutés et leur code intégré à celui de PHP.

Le second ajout fonctionnel concerne la gestion des en-têtes HTTP.

Il est maintenant possible de manipuler ces derniers une fois que les en-têtes renvoyé par défaut par PHP, et ceux défini par le développeur ont été réunis, à l'aide de la fonction header_register_callback() :

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

header_register_callback(function() {
foreach (headers_list() as $header) {
if (strpos($header, 'X-Powered') !== false) {
header_remove('X-Powered-By');
}
header_remove('X-Test');
}
}
);

...

?>

La fonction imap_fetchmime() a également été ajoutée, et il est maintenant également possible de se connecter à un serveur utilisant HTTPS via un proxy, à l'aide des flux.

Pour terminer, comme d'habitude, diverses corrections et optimisations, relatives soit à la compilation du langage, soit à son exécution, ont été effectuées, et sa fiabilité globale a donc été augmentée, même si un travail plus significatif a été réalisé sur les flux et mysqlnd.

Sur la liste de diffusion des contributeurs, internals@, je n'ai rien relevé de réellement significatif.

Il y a en effet très peu de discussion actuellement, sans que je puisse en connaître la raison, et la seule qui a éveillé quelque peu mon intérêt ressemble plus à une chamaillerie dans une cours d'école qu'à autre chose et m'a montré qu'il existe encore certaine tension au sein des contributeurs.

Pierre Joye a en effet effectué une correction mineure, dans le but de mettre en place une bonne pratique, sur le code de Derick Rethans, code qui faisait originellement parti d'une extension mais qui est maintenant totalement intégré au code du langage.

Il semble que Derick l'ai relativement mal pris, et ai demandé des explications sur les raisons de cette modification.

La discussion est alors partie rapidement en vrille, et un bel échange d'amabilité a eu lieu entre les parties concernées, avant que les choses ne se tassent d'elles-mêmes.

Cette rétrospective est maintenant terminée, vous pouvez reprendre une activité normale.