15 dépôts
Tools and interfaces for analyzing the structure and metadata of PHP source code.
Distinct from PHP Standard Interface Implementations: No candidate covers general PHP structural analysis; candidates focus on generators, linters, or PSR standards.
Explore 15 awesome GitHub repositories matching programming languages & runtimes · PHP Code Analysis. Refine with filters or upvote what's useful.
PHP-CS-Fixer is a static analysis tool and code style linter designed to validate PHP code against predefined standards. It functions as a coding standard fixer that automatically detects and corrects style violations to ensure consistent formatting across a codebase. The project serves as a syntax modernizer, providing automated tools to update legacy PHP syntax to align with newer language versions. It also allows for the creation of custom style rules when built-in standards do not meet specific requirements. The tool covers broad capability areas including automated linting workflows and
Analyzes PHP source code without execution to identify and fix syntax and styling issues.
ReflectionCommon is a PHP reflection interface library and code analysis abstraction. It serves as a foundation for static analysis by providing a shared specification for representing classes, methods, and properties during programmatic code inspection. The project standardizes the reflection API to decouple analysis tools from specific PHP reflection implementations. This ensures that different analysis implementations can work interchangeably through a consistent layer of interfaces. The library covers the domain of PHP code analysis and static analysis tooling, establishing a common way
Provides a standardized way to analyze PHP source code structures to ensure consistent results across different tools.
php-code-coverage is a PHP library and analysis tool designed to track runtime execution and determine which parts of a codebase are exercised by automated tests. It monitors executed lines and branches during a test run to identify gaps in test coverage and evaluate the effectiveness of a test suite. The tool functions as an execution tracker and report generator that transforms raw PHP execution data into human-readable formats. It serializes collected metrics for storage and utilizes a processing system to calculate the total percentage of code covered. Its capability surface covers the e
Analyzes PHP runtime execution and calculates coverage metrics for source code analysis.
This project is a PHP docblock annotation parser and reflection metadata tool designed to extract structured metadata from doc-comments and convert them into class instances. It functions as a system for retrieving and managing custom metadata attached to classes, methods, and properties. The library includes a metadata caching system to store parsed results, which reduces the performance overhead associated with repeated reflection calls and string parsing. It also serves as a static analysis utility for validating source code structure and enforcing coding standards through automated docblo
Analyzes the structure and metadata of PHP source code to validate structural consistency.
Larastan est un outil d'analyse statique pour PHP et une extension spécialisée pour PHPStan. Il sert d'analyseur de code conçu pour détecter les bugs et les problèmes architecturaux au sein des applications Laravel en analysant le code source sans l'exécuter. Le projet fournit des ensembles de règles spécifiques au framework et une inférence de type spécialisée pour gérer les modèles et la logique uniques de l'écosystème Laravel. Cela permet une détection d'erreurs et une vérification de type plus précises que les outils d'analyse génériques. L'outil inclut des systèmes pour gérer la dette technique du code legacy via le suivi de baseline d'erreurs et la suppression d'erreurs basée sur des regex. Ces capacités permettent d'identifier de nouvelles régressions tout en ignorant les violations existantes.
Performs structural analysis of PHP source code to identify bugs and quality improvements.
Larastan is a static analysis extension and type inference engine for PHP designed to detect bugs and type errors in Laravel applications. It extends PHPStan to resolve framework-specific patterns and magic methods, providing a rule-based scanning engine to audit code quality without executing the application. The tool specializes in Eloquent analysis, verifying that model properties, casts, and relationships align with database schemas and migrations. It tracks types across Eloquent collections, custom builders, and model factories to ensure type safety during database operations and iterati
Scans PHP source code to identify inefficient database queries, unused views, and architectural violations.
php-token-stream is a lexical analysis tool and tokenizer wrapper for PHP. It functions as a source code streamer that reads tokens one by one, preventing the need to load entire source files into memory. The project provides memory-efficient parsing by wrapping the native PHP tokenizer extension. This allows for the sequential processing of source code tokens to analyze structural components and syntax. The tool is designed for static code analysis and the development of compiler tooling. It supports linear token processing and sequential traversal to examine language constructs and project
Analyzes the structure and syntax of PHP source code token by token without loading entire files.
Phan est un analyseur statique et vérificateur de type pour PHP qui identifie les bugs et les incompatibilités de type sans exécuter le code. Il sert de porte de qualité pour les pipelines d'intégration continue et d'outil pour vérifier la sécurité des types, en vérifiant spécifiquement les types union, les génériques et les formes de tableaux. Le projet se distingue par l'utilisation d'un démon en arrière-plan et d'une implémentation du Language Server Protocol, qui fournissent des diagnostics et une navigation en temps réel au sein des éditeurs. Il dispose également d'un système de suppression basé sur une ligne de base (baseline) qui permet aux développeurs d'enregistrer les erreurs existantes dans un fichier instantané pour se concentrer exclusivement sur les nouvelles régressions. Le moteur d'analyse couvre un large éventail de capacités, incluant la détection de code mort, la validation de compatibilité linguistique entre différentes versions de PHP, et l'inférence de types de variables et de modèles. Il prend en charge une analyse extensible via un système de plugins et fournit des corrections de code automatisées pour un sous-ensemble de problèmes détectés. Les utilisateurs peuvent amorcer le processus en générant un fichier de configuration avec des niveaux de rigueur sélectionnables pour valider progressivement leur base de code.
Identifying unused variables, unreachable code blocks, and redundant conditions to clean up PHP codebases.
PhpInsights est un outil d'analyse statique et un analyseur de qualité de code pour PHP. Il évalue le code source pour identifier les bugs, les violations de style et la dette technique sans exécuter l'application. L'outil fonctionne comme un utilitaire de métrique de complexité, calculant la complexité architecturale et cyclomatique pour localiser une logique trop compliquée. Il mesure la santé globale du logiciel et sa maintenabilité en comparant le code aux normes de l'industrie. Le système gère la dette technique via une validation basée sur des règles et une notation basée sur des métriques. Il utilise un moteur d'analyse statique pour analyser le code source, livrant les résultats via des rapports basés sur la console et un fichier de configuration spécifique au projet.
Analyzes PHP source code for style and complexity issues to identify technical debt without running the application.
Cette bibliothèque est un tokenizer de code source PHP et un outil d'analyse statique qui convertit le code PHP brut en jetons discrets et en représentations XML structurées. Il fonctionne comme un sérialiseur qui transforme les flux de jetons en un format lisible par machine pour l'analyse programmatique et la manipulation de l'arborescence source. Le projet utilise la sérialisation XML basée sur les flux et l'écriture de tampons basée sur des fragments pour maintenir une faible surcharge mémoire lors du traitement de fichiers volumineux. Il permet une configuration personnalisée des espaces de noms XML pour garantir la compatibilité des schémas et éviter les collisions de noms pendant le processus de transformation. La boîte à outils couvre l'analyse lexicale et la conversion du code source en XML structuré pour prendre en charge les flux de travail d'analyse de code statique. Elle traite les flux de jetons en un seul passage pour organiser les listes sources plates en une structure XML hiérarchique.
Converts PHP source code into structured XML to enable programmatic analysis and manipulation of the code tree.
Vulture est un outil d'analyse statique et un linter conçu pour trouver les variables, fonctions et classes inutilisées dans le code source Python. Il opère comme un détecteur de code mort et un chercheur de code inutilisé qui scanne les fichiers sources pour identifier les expressions et importations inaccessibles sans exécuter le code. L'outil emploie un système de score heuristique basé sur la confiance pour attribuer des valeurs de probabilité aux détections, aidant à distinguer les symboles réellement inutilisés des faux positifs potentiels. Il aide en outre à élaguer la logique morte en triant les classes et fonctions inutilisées détectées par nombre de lignes pour prioriser la suppression des plus gros blocs de code. La surface d'analyse inclut l'analyse de l'accessibilité du flux de contrôle, le suivi des références de symboles et la capacité de supprimer les faux positifs via des modèles de noms, des décorateurs ou des commentaires d'ignorance. Vulture prend également en charge la génération et la gestion de listes blanches via des modules mock pour exclure des éléments spécifiques des scans ultérieurs. Les règles d'analyse à l'échelle du projet et les chemins cibles peuvent être gérés via des fichiers de configuration, incluant la prise en charge du format TOML.
Identifies unused functions, classes, and variables in Python source code to reduce technical debt.
phpDocumentor est un générateur de documentation API PHP et un analyseur de code source qui transforme les fichiers PHP et les DocBlocks en références API HTML structurées. Il fonctionne comme un générateur de site statique et un outil de documentation automatique conçu pour synchroniser la documentation technique avec les changements de code. Le projet se distingue en agissant comme un générateur de diagrammes UML, produisant des graphiques de classes et d'architecture via PlantUML basés sur l'analyse du code source. Il prend également en charge la rédaction de manuels techniques, rendant des guides écrits à la main en Markdown et ReStructuredText aux côtés des références API générées automatiquement. L'outil fournit de larges capacités pour l'analyse du code source, y compris la génération d'arbres de syntaxe abstraits, le marquage de métadonnées et la gestion de l'héritage de la documentation. Il inclut des outils de visualisation pour l'architecture du code, le contrôle de la visibilité des éléments et la gestion de la documentation versionnée. Les builds peuvent être gérés via des fichiers de configuration XML pour automatiser la génération au sein des pipelines d'intégration continue.
Parses PHP files to create structured metadata, abstract syntax trees, and visual relationship diagrams of the codebase.
Overcommit is a Git hook manager and pre-commit validation framework designed to automate the execution of scripts and checks during various Git events. It serves as a workflow automation tool that ensures code quality and project standards are met before changes are committed or pushed to a remote repository. The system distinguishes itself through a comprehensive YAML-based configuration that allows for detailed hook behavior control, including file execution filtering, conditional skipping, and the management of hook dependencies. It provides specialized roles such as a commit message vali
Analyzes modified PHP files for errors during the pre-commit phase to prevent broken code.
This library provides a structured framework for managing runtime failures and debugging within PHP applications. It functions by intercepting native language errors, warnings, and system signals, converting them into catchable, object-oriented exceptions to ensure consistent control flow throughout the application lifecycle. The project distinguishes itself by normalizing raw execution backtraces and providing a transformation layer that standardizes how system failures are reported. It includes specialized tools for monitoring the class loading process, ensuring that dependency resolution i
Detects deprecated methods and invalid code structures to ensure long-term stability and adherence to modern standards.
This project is a backend service that implements the Language Server Protocol to provide IDE-integrated intelligence for PHP development. It functions as a static analysis tool that parses source code to enable advanced editor features, including autocompletion, symbol navigation, and definition resolution. The server distinguishes itself through its ability to operate within isolated containers and remote development environments. By utilizing a virtual file system abstraction and flexible communication protocols, it maintains project-wide symbol indexing and code analysis even when files a
Providing advanced code intelligence features like autocompletion and symbol navigation to PHP developers within their preferred code editor.