Repolode
nikic

nikic/PHP-Parser

Парсер PHP, написанный на PHP: преобразует исходный код в абстрактное синтаксическое дерево для статического анализа и обработки кода.

Звёзды
17,467
Форки
1,145
Открытые issues
75
Последний коммит
позавчера

Что это?

PHP-Parser разбирает код PHP 7 и PHP 8 и преобразует его в абстрактное синтаксическое дерево (AST), добавляя к каждому узлу информацию о его расположении в исходном коде. Библиотека также может разбирать некорректный код и создавать частичное дерево — это полезно инструментам, которым нужно работать с кодом, находящимся в процессе редактирования.

Помимо парсинга, библиотека предоставляет обходчик дерева узлов с visitor-ами для чтения и изменения дерева, pretty printer для преобразования AST обратно в PHP-код (с сохранением исходного форматирования в частично изменённых деревьях), разрешение имён в пространствах имён и вычисление константных выражений. Builder-ы упрощают создание узлов AST для генерации кода, а дерево можно сериализовать в JSON и обратно.

Библиотека устанавливается через Composer и служит основой для инструментов анализа кода, рефакторинга и генерации кода в экосистеме PHP. Версия 5.x работает на PHP 7.4 и более поздних версиях.

Ключевые возможности

  • 01Разбирает код PHP 7 и PHP 8 в AST с точной информацией о расположении узлов в исходном коде.
  • 02Восстанавливает частичный AST из синтаксически некорректного кода.
  • 03Преобразует AST обратно в PHP-код, сохраняя форматирование неизменённых частей.
  • 04Предоставляет visitor-ы и обходчик для чтения и изменения деревьев.
  • 05Разрешает имена в пространствах имён и вычисляет константные выражения.
  • 06Сериализует AST в JSON и обратно.

Сценарии использования

  • Создание инструментов статического анализа и линтинга для PHP-кодовых баз.
  • Написание скриптов автоматического рефакторинга, изменяющих исходные PHP-файлы.
  • Программная генерация PHP-кода с помощью AST builder-ов.
  • Анализ PHP-кода на уязвимости и нарушения стандартов кодирования.

Быстрый старт

  1. 1

    Установите библиотеку с помощью Composer

    php composer.phar require nikic/php-parser
  2. 2

    Преобразуйте код PHP в AST и выведите его, используя пример кода из README

Что важно знать

  • Для запуска версии 5.x требуется PHP 7.4 или новее. Для версии 4.x требуется PHP 7.0 или новее.

Темы

Частые вопросы

Что такое PHP-Parser?
Парсер PHP, написанный на PHP: преобразует исходный код в абстрактное синтаксическое дерево для статического анализа и обработки кода. PHP-Parser разбирает код PHP 7 и PHP 8 и преобразует его в абстрактное синтаксическое дерево (AST), добавляя к каждому узлу информацию о его расположении в исходном коде. Библиотека также может разбирать некорректный код и создавать частичное дерево — это полезно инструментам, которым нужно работать с кодом, находящимся в процессе редактирования.
PHP-Parser можно использовать бесплатно? Какая у него лицензия?
PHP-Parser распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
PHP-Parser всё ещё поддерживается?
Активно поддерживается. Последний коммит в PHP-Parser — 5 нояб. 2026 г..
Для чего можно использовать PHP-Parser?
Создание инструментов статического анализа и линтинга для PHP-кодовых баз. Написание скриптов автоматического рефакторинга, изменяющих исходные PHP-файлы. Программная генерация PHP-кода с помощью AST builder-ов. Анализ PHP-кода на уязвимости и нарушения стандартов кодирования.
Как установить PHP-Parser?
Установите библиотеку с помощью Composer: php composer.phar require nikic/php-parser Преобразуйте код PHP в AST и выведите его, используя пример кода из README
Где скачать PHP-Parser?
Исходный код и инструкции по установке — на GitHub: https://github.com/nikic/PHP-Parser

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости.

4 тыс.601JavaApache-2.0Активно поддерживаетсяОбновлён 14 часов назад

Набор библиотек Swift для разбора, анализа, генерации и преобразования исходного кода Swift в синтаксическое дерево, точно соответствующее исходному тексту.

3,7 тыс.+5 за неделю565SwiftApache-2.0Активно поддерживаетсяОбновлён 23 часа назад