Ça fait un moment que je me demande s’il existe un outil pour déterminer les extensions php nécessaires au bon fonctionnement d’un site… et bien sûr ça existe, mais j’ai mis un moment à le trouver: ça s’appelle PHP_Compatinfo alias PHPCI, c’est un « module » pear pas bien compliqué à installer, avec un utilitaire CLI, et ça sait parser du code php pour en extraire plein d’informations, dont la fameuse liste des extensions nécessaires… par exemple sur une installation drupal avec quelques modules, la commande:
phpci -dmemory_limit=512M --no-configuration print --reference PHP5 --recursive --report extension 9hz8o97./
me répond:
------------------------------------------------------------------------------- PHP COMPAT INFO EXTENSION SUMMARY ------------------------------------------------------------------------------- EXTENSION EXT min/Max PHP min/Max COUNT ------------------------------------------------------------------------------- Core 4.0.0 4.0.0 34544 PDO 5.1.0 76 Reflection 5.0.0 4 SPL 5.1.0 5.0.0 247 SimpleXML 5.0.1 17 bcmath 5.0.0 4.0.0 7 bz2 4.0.4 9 ctype 4.0.4 1 curl 4.0.2 193 date 4.0.0 335 dom 5.0.0 9 filter 0.11.0 4.0.0 11 gd 4.0.0 125 gmp 4.0.4 8 hash 1.1 4.0.0 24 iconv 4.0.5 2 json 5.3.0 5.2.0 17 libxml 5.2.11 5.0.0 37 mbstring 4.0.6 13 openssl 4.0.4 1 pcre 4.0.0 459 C pdo 4.0.0 2 session 4.0.0 43 standard 4.1.0 4.0.0 10080 C tidy 4.0.0 1 xml 4.0.0 31 zip 1.6.0 4.3.0 1 C zlib 1.0 4.0.0 27 ------------------------------------------------------------------------------- A TOTAL OF 28 EXTENSIONS WERE FOUND WITH 3 EXCLUDED ON CONDITIONAL CODE REQUIRED PHP 5.2.0 (MIN) -------------------------------------------------------------------------------
Bon, a part PDO il n’a pas deviné quelle BDD j’utilise, mais je pense pouvoir le deviner… sinon mes process httpd passent de 322M à 271M en RAM ? (et oui, ça baisserait aussi pour du php-fpm, mais il est pas encore arrivé là).
Il semble être capable de déterminer un tas de choses liées aux tests unitaires et à la couverture du code, aux modules PEAR, etc.