Парсер Java от версии 1 до Java 25, который строит абстрактное синтаксическое дерево, и модуль для разрешения ссылок на объявления и типы.
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
Установите библиотеку с помощью Composer
php composer.phar require nikic/php-parser - 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 обновляется ежедневно.
Похожие проекты
CLI-инструмент для поиска, линтинга и переписывания кода по шаблонам AST, а не по обычному тексту.
OpenRewrite — движок автоматического рефакторинга с открытым исходным кодом: он применяет рецепты к коду во множестве репозиториев, помогая мигрировать на новые версии фреймворков и устранять уязвимости.
Набор библиотек Swift для разбора, анализа, генерации и преобразования исходного кода Swift в синтаксическое дерево, точно соответствующее исходному тексту.
Полноценный парсер C99/C11 на чистом Python: строит AST исходного кода на C и не требует внешних зависимостей.
Обёртка для TypeScript Compiler API, которая упрощает анализ и программное изменение кода TypeScript и JavaScript.