Améliorations

  • Amélioration du gestionnaire de mémoire, et augmentation du niveau de mémoire par défaut. Le nouveau gestionnaire de mémoire consomme moins de mémoire et travaille plus vite que sa version précédente. Il demande de la mémoire au système par gros bloc, puis gère son stock lui-même. La valeur de memory_limit dans php.ini est vérifiée non plus pour chaque appel à emalloc() mais pour chaque allocation de bloc. Cela signifie que memory_limit est bien plus précis qu'avant, car le vieux gestionnaire de mémoire ne calculait pas toute la mémoire consommée par la bibliothèque malloc. Grâce à cette nouvelle précision, la quantité de mémoire semble avoir augmenté, mais ce n'est pas le cas. Pour s'adapter à cette augmentation artificielle, la directive memory_limit a été augmentée de 8 à 16 Mo.
  • Ajout du support des constructeurs dans les interfaces, pour forcer la signature des constructeurs via les interfaces. Depuis PHP 5.2.0, les interfaces peuvent contenir des constructeurs. Toutefois, si vous choisissez de déclarer un constructeur dans une interface, les classes qui l'implémentent DOIVENT inclure un constructeur avec une signature qui correspond à celle de l'interface originale. Par signature, nous signifions les paramètres et les types retournés, incluant les types de paramètres, et leur passage par référence ou par valeur.