PHP Mess Detector
PHP Parser
Our great sponsors
PHP Mess Detector | PHP Parser | |
---|---|---|
9 | 11 | |
2,289 | 16,835 | |
0.8% | - | |
8.8 | 8.3 | |
6 days ago | 10 days ago | |
PHP | PHP | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PHP Mess Detector
-
PHP libraries and tools
PHPMD - PHP Mess Detector: PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly frontend application for the raw metrics stream measured by PHP Depend.
-
Top 6 PHP code quality tools 2023
PHPMD Mess Detector: PHP Mess Detector PHP Mess Detector identifies potential problems and "code smells" in PHP code. It detects complex code, unused variables, duplicated code blocks, and other issues that may indicate poor code quality. It helps developers refactor and clean up their codebase. Documentation: To explore PHP Mess Detector and understand its usage, refer to the official repository: PHP Mess Detector Repository
-
PHP in 2023 - stitcher.io
While you're at it, also include code-style checkers like phpcs, phpmd and/or php-cs-fixer
-
Underestimated PHP
Mess detector
-
Github Actions for Symfony 5 PHPUnit and more
name: Symfony 5 Tests on: push: branches: - main - dev pull_request: jobs: symfony: name: Symfony 5.0 (PHP ${{ matrix.php-versions }}) # https://hub.docker.com/_/ubuntu/ runs-on: ubuntu-latest strategy: fail-fast: true matrix: php-versions: ['7.4'] steps: # https://github.com/actions/checkout (official) - name: Checkout uses: actions/checkout@v2 # https://github.com/shivammathur/setup-php (community) - name: Setup PHP, extensions and composer with shivammathur/setup-php uses: shivammathur/setup-php@verbose with: php-version: ${{ matrix.php-versions }} extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, dom, filter, gd, iconv, json, mbstring, pdo # Composer - name: Get composer cache directory id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" # https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows - name: Cache composer dependencies uses: actions/cache@v1 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer dependencies run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader # https://github.com/sensiolabs/security-checker - name: Security check installed dependencies uses: symfonycorp/security-checker-action@v2 # https://github.com/chekalsky/phpcs-action (community) - name: Check PSR12 code style (PHP_CodeSniffer) uses: chekalsky/[email protected] with: enable_warnings: true installed_paths: '${{ github.workspace }}/vendor/squizlabs/php_codesniffer' phpcs_bin_path: './vendor/bin/phpcs src --ignore="Migrations/"' # https://github.com/phpmd/phpmd # - name: Analyses PHP Code (PHP Mess Detector) # run: vendor/bin/phpmd src,tests text .phpmd-ruleset.xml # https://github.com/phpstan/phpstan - name: Analyse PHP Code (PHPStan) run: vendor/bin/phpstan analyse src - name: Cache node_modules uses: actions/cache@v1 id: yarn-cache-node-modules with: path: node_modules key: ${{ runner.os }}-yarn-cache-node-modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn-cache-node-modules- - name: Yarn install if: steps.yarn-cache-node-modules.outputs.cache-hit != 'true' run: yarn install - name: Yarn build run: yarn run encore production - name: Archive production artifacts uses: actions/upload-artifact@v1 with: name: build path: public/build # Symfony - name: Check the Symfony console run: | php bin/console -V php bin/console about # Tests - name: Run unit and functional tests run: | php bin/phpunit --stop-on-failure # - name: Run Behat/Mink tests # run: | # php vendor/bin/behat
- Twelve-factor app módszer a gyakorlatban / 1. rész
-
PHP Static Analysis Tools Review
PHP Mess Detector is a multi-faceted static analysis PHP Tool based on PHP Depend. The kind of problems detected by PHPMD are divided into 5 main categories:
- Automating code quality check using GrumPHP in Magento 2
-
A minimal Drupal 9 local development environment
PHPMD
PHP Parser
- PHP-Parser: A PHP parser written in PHP
-
Diff Speeding - Rector and sebastian/diff speed improvements through profiling
Interesting. One of the reasons I stopped considering Rector is because of how memory, CPU, and time intensive it is for a non-trivial project. Instead I've been using Nikita's PHP Parser directly and getting much better results even though it isn't multi-threaded out of the box.
-
PHP Skeleton for Bison
nikic/PHP-Parser uses a Bison equivalent for PHP parsing. See the grammar file https://github.com/nikic/PHP-Parser/blob/4.x/grammar/php7.y.
-
Alternative for nette/tokenizer?
Maybe nikic/PHP-Parser is an alternative. If you only need to tokenizer part, PHP has an extension too.
-
How PHP engine builds AST
nikic/PHP-Parser
-
Parsing with PHP, Bison and re2c
Code parsing. Many linters and code builders use php-parser. It uses YACC (analog Bison) to build AST.
-
Readonly classes RFC accepted
The PR in PHP-Parser is already on the way ↓ https://github.com/nikic/PHP-Parser/pull/834
-
[Question] Trying to understand, how does the PHP Parser work when it sees HTML?
I see there is the https://github.com/nikic/PHP-Parser
-
I was annoyed by some of PHP's syntax, so I decided to make a PHP transpiler (still in beta!)
It's good idea. But something strange. Php was made as language which embedded to HTML. And how will it work without open and close tags? Instead of parsing and replacing source code as string you might use parser e.g https://github.com/nikic/PHP-Parser
-
Tree-sitter: an incremental parsing system for programming tools
I wish there was a more universal format for parsers, but I just don't think there enough people who know their stuff.
Take PHP, a language that a lot of people use: the tree-sitter-php extension doesn't support features added in 2019, let alone features added towards the end of 2020.
If you want an up-to-date PHP parser, there's really only one open-source parser[0] that's accurate enough to be used on PHP codebases old and new, and it's written in PHP. Then if you want to parse in a robust fashion you have to adopt a number of hacks to get everything working.
I hadn't encountered LSIF before – can GitHub be configured to use those maps?
[0] https://github.com/nikic/PHP-Parser
What are some alternatives?
PHPStan - PHP Static Analysis Tool - discover bugs in your code without running it!
PHP Code Sniffer - PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
PHP CS Fixer - A tool to automatically fix PHP Coding Standards issues
GrumPHP - A PHP code-quality tool
PHPCPD - Copy/Paste Detector (CPD) for PHP code.
phan - Phan is a static analyzer for PHP. Phan prefers to avoid false-positives and attempts to prove incorrectness rather than correctness.
Better Reflection - :crystal_ball: Better Reflection is a reflection API that aims to improve and provide more features than PHP's built-in reflection API.
PHP Metrics - Beautiful and understandable static analysis tool for PHP
tree-sitter - An incremental parsing system for programming tools