Список используемых модулей PHP в базе кода - PullRequest
13 голосов
/ 16 февраля 2010

Мне нужно перечислить все расширения PHP, которые требуются для данной базы кода.Как лучше всего решить эту проблему?

Моя первоначальная мысль - написать скрипт, который просматривает все файлы, находит все функции и сравнивает их с заданной базой данных расширений / функций.Любые другие предложения?


Обновление: Я уже сделал несколько скриптов Bash с использованием grep и используя PHP-функции get_loaded_modules, get_extension_funcs, но это расширение именно то, что я искал.*

Ответы [ 2 ]

12 голосов
/ 04 сентября 2014

PHP CompatInfo (не расширение PEAR) отлично подходит, если вы научитесь его использовать:

  1. Перейти на PHP CompatInfo сайт
  2. Скачать и установить инструмент
  3. Скопируйте содержимое файла конфигурации со своего сайта и поместите его в новый файл с именем phpcompatinfo.json
  4. выполните следующую команду (текущим каталогом является каталог, в котором находится phpcompatinfo.json)

    phpcompatinfo analyser:run . extension

Вы получите такой вывод:

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
7 голосов
/ 16 февраля 2010

Есть пакет PEAR, который делает это, насколько я помню: PHP_CompatInfo:

Узнайте минимальную версию и расширения, необходимые для куска код для запуска

См. Анализатор командной строки , чтобы узнать, как запустить его из командной строки, и получить несколько примеров вывода.


(он помечен как не обслуживаемый, поэтому могут быть проблемы с последними версиями PHP, но в последний раз, когда я использовал его - возможно, год назад - он работал нормально)

...