Второй скрипт для анализа потоков данных (Data Flow) в PHP проектах на базе SciTools Understand.
Этот скрипт дополняет основной PHP Quality Analyzer и фокусируется на анализе того, как данные перемещаются через проект:
- Входные данные (inputs): параметры функций, читаемые переменные
- Выходные данные (outputs): возвращаемые значения, изменяемые переменные
- Зависимости данных: как функции связаны через передачу данных
- Потоки переменных: трассировка использования переменных
- Параметры функций и их типы
- Переменные, которые функция читает
- Переменные, которые функция изменяет
- Возвращаемые значения
- Вызываемые функции
- Где переменная определена
- Где переменная читается
- Где переменная изменяется
- Цепочки использования переменной
- Свойства класса и их видимость
- Входы/выходы всех методов класса
- Зависимости между свойствами и методами
- Трассировка зависимостей внутри функций
- Последовательность операций с данными
- Потенциальные проблемы с потоками данных
В интерфейсе SciTools Understand доступны следующие опции:
- Analyze Function Data Flow: анализ потоков данных функций
- Analyze Variable Data Flow: анализ потоков данных переменных
- Analyze Class Data Flow: анализ потоков данных классов
- Trace Data Dependencies: трассировка зависимостей данных
- Generate Data Flow Graph: генерация графического представления
- Basic: только функции
- Standard: функции + переменные
- Deep: полный анализ с трассировкой путей
- Max Functions to Show: 10, 25, 50, 100, 200, All
- Max Variables to Show: 5, 10, 30, 50, 100, All
- Max Dependencies to Show: 5, 10, 20, 50, 100, All
Скрипт генерирует отчет с разделами:
- FUNCTION DATA FLOW ANALYSIS - детальный анализ каждой функции
- VARIABLE DATA FLOW ANALYSIS - анализ переменных
- CLASS DATA FLOW ANALYSIS - анализ классов
- DATA DEPENDENCY TRACE ANALYSIS - трассировка зависимостей
- DATA FLOW GRAPH - графическое представление потоков
- Откройте проект в SciTools Understand
- Выберите скрипт
PHP_DataFlow_Analyzer/dataflow.upy - Настройте параметры анализа
- Запустите генерацию отчета
Этот скрипт работает независимо от PHP Quality Analyzer, но может использоваться совместно для комплексного анализа:
- PHP Quality Analyzer: архитектурные запахи, метрики качества
- PHP Data Flow Analyzer: потоки данных, зависимости
- Для больших проектов используйте "Basic" глубину анализа
- Включайте "Data Flow Graph" для визуализации
- Ограничьте количество показываемых элементов для читаемости
- Используйте SciTools Understand's Graph views для интерактивной визуализации
- Использует SciTools Understand Python API
- Анализирует PHP/Web языковые конструкции
- Поддерживает все виды PHP сущностей (классы, функции, переменные)
- Оптимизирован для больших кодовых баз