Skip to content

bivex/ideal-waddle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

PHP Data Flow Analyzer

Второй скрипт для анализа потоков данных (Data Flow) в PHP проектах на базе SciTools Understand.

🎯 Назначение

Этот скрипт дополняет основной PHP Quality Analyzer и фокусируется на анализе того, как данные перемещаются через проект:

  • Входные данные (inputs): параметры функций, читаемые переменные
  • Выходные данные (outputs): возвращаемые значения, изменяемые переменные
  • Зависимости данных: как функции связаны через передачу данных
  • Потоки переменных: трассировка использования переменных

🔍 Возможности анализа

1. Function Data Flow (Анализ функций)

  • Параметры функций и их типы
  • Переменные, которые функция читает
  • Переменные, которые функция изменяет
  • Возвращаемые значения
  • Вызываемые функции

2. Variable Data Flow (Анализ переменных)

  • Где переменная определена
  • Где переменная читается
  • Где переменная изменяется
  • Цепочки использования переменной

3. Class Data Flow (Анализ классов)

  • Свойства класса и их видимость
  • Входы/выходы всех методов класса
  • Зависимости между свойствами и методами

4. Data Dependencies (Зависимости данных)

  • Трассировка зависимостей внутри функций
  • Последовательность операций с данными
  • Потенциальные проблемы с потоками данных

⚙️ Настройки скрипта

В интерфейсе 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

📊 Выходные данные

Скрипт генерирует отчет с разделами:

  1. FUNCTION DATA FLOW ANALYSIS - детальный анализ каждой функции
  2. VARIABLE DATA FLOW ANALYSIS - анализ переменных
  3. CLASS DATA FLOW ANALYSIS - анализ классов
  4. DATA DEPENDENCY TRACE ANALYSIS - трассировка зависимостей
  5. DATA FLOW GRAPH - графическое представление потоков

🚀 Использование

  1. Откройте проект в SciTools Understand
  2. Выберите скрипт PHP_DataFlow_Analyzer/dataflow.upy
  3. Настройте параметры анализа
  4. Запустите генерацию отчета

🔗 Связь с основным анализатором

Этот скрипт работает независимо от 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 сущностей (классы, функции, переменные)
  • Оптимизирован для больших кодовых баз