2010-02-16 5 views
11

È necessario elencare tutte le estensioni PHP richieste da un determinato codice base. Quale sarebbe il modo migliore per affrontare questo problema?Elenco dei moduli PHP utilizzati nel codice base

Il mio primo pensiero è quello di scrivere uno script che analizzi tutti i file e trovi tutte le funzioni e li confronti con un determinato database di estensione/funzione. Qualche altro suggerimento?


Aggiornamento: ho già fatto qualche script Bash con grep e utilizzando get_loaded_modules, funzioni get_extension_funcs PHP, ma questa estensione è esattamente quello che stavo cercando.

risposta

7

Esiste un pacchetto PEAR che lo fa, da quello che ricordo: PHP_CompatInfo:

scoprire la versione minima e le estensioni richieste per un pezzo di codice per eseguire

Vedere The Command-Line Parser per sapere come eseguirlo dalla riga di comando e per ottenere alcuni esempi di output.


(E 'contrassegnato come non più mantenuto, quindi ci potrebbero essere alcuni problemi con le versioni recenti di PHP, ma l'ultima volta che ho usato - forse un anno fa - ha funzionato bene)

+1

L'ultima versione (decemb er 2013) di PHP_CompatInfo è disponibile da http://bartlett.laurent-laville.org/ –

10

PHP CompatInfo (non l'estensione PEAR) è grande una volta che si impara come usarlo:

  1. Vai al sito PHP CompatInfo
  2. Scaricare e installare lo strumento
  3. Copiare il contenuto del file di configurazione dal loro sito e metterla in un nuovo file chiamato phpcompatinfo.json
  4. eseguire il seguente comando (dir corrente è la directory in cui è collocato phpcompatinfo.json)

    phpcompatinfo analyser:run . extension

Si otterrà un output simile a questo:

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

dov'è il file 'phpcompatinfo.json'? Dobbiamo creare un file o sostituire un file esistente? Dice 'src /' dir ma non riesco a trovarlo. –

+0

Ok, quindi per quelli di voi che hanno avuto un piccolo problema ecco quello che ho fatto. Puoi semplicemente metterlo (** phpcompatinof.json **) nella tua cartella etc (_linux_) '/ etc /' e funzionerà. –

+1

Ho appena modificato la risposta per chiarire che phpcompatinfo.json è un nuovo file da creare, non uno esistente – hegemon