2010-02-16 9 views
11

Necesito enumerar todas las extensiones de PHP que requiere una base de código dada. ¿Cuál sería la mejor manera de abordar este problema?Lista de módulos PHP utilizados en base de código

Mi idea inicial es escribir un script que revise todos los archivos y encuentre todas las funciones y las compare con una base de datos de extensión/función dada. ¿Cualquier otra sugerencia?


Actualización: que ya hizo una secuencia de comandos Bash con grep y utilizando get_loaded_modules, funciones get_extension_funcs PHP, pero esta extensión es exactamente lo que estaba buscando.

Respuesta

7

Hay un paquete de PEAR que hace eso, de lo que recuerdo: PHP_CompatInfo:

averiguar la versión mínima y los extensiones necesarias para una pieza de código para ejecutar

Consulte The Command-Line Parser para saber cómo ejecutarlo desde la línea de comandos y obtener algunos ejemplos de resultados.


(Está marcado como no tendrá soporte, lo que podría haber algunos problemas con las versiones recientes de PHP, pero la última vez que lo usó - tal vez hace un año - que funcionaba bien)

+1

La última versión (decemb er 2013) de PHP_CompatInfo está disponible en http://bartlett.laurent-laville.org/ –

10

PHP CompatInfo (no la extensión PEAR) es grande una vez que aprender cómo usarlo:

  1. Ir al sitio PHP CompatInfo
  2. Descargar e instalar la herramienta
  3. copiar el contenido del archivo de configuración desde su sitio y ponerlo en un nuevo archivo llamado phpcompatinfo.json
  4. ejecute el siguiente comando (directorio actual es el directorio en el que se coloca phpcompatinfo.json)

    phpcompatinfo analyser:run . extension

Usted recibirá una salida como esta:

Extensions Analysis 

Extension REF EXT min/Max PHP min/Max 
Core   4.2.0  4.2.0 
PDO   5.1.0  5.1.0 
Reflection  5.0.0  5.0.0 
calendar  4.0.0  4.0.0 
date   5.3.0  5.3.0 
filter   0.11.0  5.0.0 
gettext  4.0.0  4.0.0 
iconv   4.0.5  4.0.5 
json   5.4.0  5.4.0 
mbstring  4.4.3  4.4.3 
pcre   4.0.0  4.0.0 
session  4.0.3  4.0.3 
spl   5.4.0  5.4.0 
standard  5.5.0  5.5.0 
Total [14]     5.5.0 
+0

¿dónde está el 'phpcompatinfo.json'? ¿Tenemos que hacer un archivo o reemplazar un archivo existente? Dice el directorio 'src /' pero no puedo encontrarlo. –

+0

Bien, entonces para aquellos de ustedes que tuvieron un pequeño problema, esto es lo que hice. Puedes simplemente ponerlo (** phpcompatinof.json **) en tu carpeta etc (_linux_) '/ etc /' y se ejecutará. –

+1

Acabo de editar la respuesta para dejar en claro que phpcompatinfo.json es un nuevo archivo para crear, no uno existente – hegemon

Cuestiones relacionadas