{"id":20674629,"url":"https://github.com/jdlabails/phpprojectanalyzerbundle","last_synced_at":"2025-06-30T12:37:40.167Z","repository":{"id":56997525,"uuid":"42474750","full_name":"jdlabails/PhpProjectAnalyzerBundle","owner":"jdlabails","description":"Symfony bundle for code analysis","archived":false,"fork":false,"pushed_at":"2018-04-15T13:21:40.000Z","size":20659,"stargazers_count":11,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-22T11:18:46.605Z","etag":null,"topics":["analysis","atoum-test","codesniffer","php","phpcpd","phpcs","phpmd","phpunit","symfony-bundle","unit-test"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdlabails.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-14T20:18:49.000Z","updated_at":"2019-06-02T18:33:42.000Z","dependencies_parsed_at":"2022-08-21T11:10:17.670Z","dependency_job_id":null,"html_url":"https://github.com/jdlabails/PhpProjectAnalyzerBundle","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/jdlabails/PhpProjectAnalyzerBundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdlabails%2FPhpProjectAnalyzerBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdlabails%2FPhpProjectAnalyzerBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdlabails%2FPhpProjectAnalyzerBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdlabails%2FPhpProjectAnalyzerBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdlabails","download_url":"https://codeload.github.com/jdlabails/PhpProjectAnalyzerBundle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdlabails%2FPhpProjectAnalyzerBundle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262775035,"owners_count":23362434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","atoum-test","codesniffer","php","phpcpd","phpcs","phpmd","phpunit","symfony-bundle","unit-test"],"created_at":"2024-11-16T21:06:29.477Z","updated_at":"2025-06-30T12:37:40.143Z","avatar_url":"https://github.com/jdlabails.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Php Project Analyzer Bundle\n\nGives you consolidated views of analysis results.\n\n\n[![Build Status](https://travis-ci.org/jdlabails/PhpProjectAnalyzerBundle.svg?branch=master)](https://travis-ci.org/jdlabails/PhpProjectAnalyzerBundle)\n[![Total Downloads](https://poser.pugx.org/jdlabails/php-project-analyzer-bundle/d/total.png)](https://packagist.org/packages/jdlabails/php-project-analyzer-bundle)\n[![Latest Stable Version](https://poser.pugx.org/jdlabails/php-project-analyzer-bundle/v/stable.png)](https://packagist.org/packages/jdlabails/php-project-analyzer-bundle)\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/3b03dad9-01a6-4d9e-8cb5-72a2fc8190dc/mini.png)](https://insight.sensiolabs.com/projects/3b03dad9-01a6-4d9e-8cb5-72a2fc8190dc)\n\n\nIt give a view like :\n\n![](https://raw.githubusercontent.com/jdlabails/PhpProjectAnalyzerBundle/master/ppaIndex.png)\n\n\n### Features\n - Aggregate php analysis metrics\n - Offer user-friendly interface\n - Execute quick scan of your project\n - English or French interfaces\n - Links with code coverage report\n - Scoring based on quantity and quality metrics\n - Enable PhpUnit or Atoum unit tests\n - Security checker available\n\n\nIt executes\n - Php Mess Detector\n - Php Unit Tests\n - Atoum tests\n - Php Code Sniffer ( + reparation tool via phpcbf)\n - Copy-paste detector\n - Php Depend\n - Php Loc\n\nAnd parses their report to give a nice view for rapid analysis of your project.\n\n### Install\n - composer require jdlabails/php-project-analyzer-bundle --dev\n - add bundle to kernel\n```php\n/* app/AppKernel.php */\npublic function registerBundles()\n    {\n// ...\n        $bundles[] = new JD\\PhpProjectAnalyzerBundle\\JDPhpProjectAnalyzerBundle();\n// ...\n}\n```\n - Add routing\n```yaml\n# app/config/routing.yml\nppa:\n    resource: '@JDPhpProjectAnalyzerBundle/Resources/config/routing.yml'\n```\n - Add security exception\n ```yaml\n access_control:\n     # PPA\n     - { path: \"^(/[a-z]{2})?/ppa(/[a-z]*)?\", roles: IS_AUTHENTICATED_ANONYMOUSLY }\n ```\n \n - Set your config\n \n```yml\nframework:\n    translator: { fallback: %locale% }\n\njd_php_project_analyzer:\n    title:          Php project analyzer\n    description:    It's a ouaaaouhh project !\n\n    gitRepositoryURL:      https://github.com/jdlabails/PhpProjectAnalyzerBundle\n\n    # directory to analyze\n    srcPath : /home/jd/Dev/ppa/src/JD\n\n    # quantitative metric\n    count : true\n\n    # quality metric : copy-paste\n    cpd : true\n\n    # quality metric : code sniffer\n    cs :\n        enable: true\n        standard: PSR2\n\n    # security checker\n    security: true\n\n    # quality metric : phpdepend\n    depend : true\n\n    # quality metric : phploc\n    loc : true\n\n    # quality metric : mess detector\n    md :\n        enable: true\n        rules:\n            cleancode: true\n            codesize: true\n            controversial: true\n            design: true\n            naming: true\n            unusedcode: true\n\n    # generate phpdoc\n    docs : true\n\n    # testing\n    test :\n        enable: false\n        lib : phpunit       # phpunit || atoum\n        phpunitTestSuite : ppa\n#        atoumPath : /home/smith/www/projectX/vendor/bin/atoum\n#        atoumTestDir : /absolute/path/to/your/test/dir\n\n    # score\n    score:\n        enable:         true\n        csWeight:       100     # between 0 and 100, weighting of code sniffer\n        testWeight:     100     # between 0 and 100, weighting of testing\n        locWeight:      100     # between 0 and 100, weighting of code coverage\n\n```\n\n\n - Set assets\n```bash\nphp app/console assets:install\n```\n\n - Set right for ppa directory in the web directory\n ```bash\n sudo php app/console ppa:init\n```\n\n - Add web/ppa in your .gitignore\n\n### Use\n - Call http://127.0.0.1:8000/en/ppa with your nav.\n - Click on 'Start Scan'\n\n\n### update your phar\n\n```bash\ncd Resources/_phar\nchmod +x  update.sh\n./update.sh\n```\n\n### Commands available\n\nppa:analyse:launch ==\u003e launch analysis without web interface\nppa:analyse:read ==\u003e read analysis without web interface. The result is in json\n\n### Need contributions\n\nExamples :\n * avoid phar files for dependencies symfony\n * refacto code\n * unit tests\n * download security checker at each scan\n * behat\n \nJust make a pull request on master\n \n##### Check style\n```bash\nbin/phpcs --standard=PSR2 --extensions=php Entities Manager Command Controller DependencyInjection Traits\n```\n \n##### Unit Tests\n```bash\nbin/simple-phpunit -c phpunit.xml\n```\n\n##### Tip for local project\nPut in your composer.json\n\n```json\n  \"minimum-stability\": \"dev\",\n  \"prefer-stable\": true,\n  \"repositories\": [\n    {\n      \"type\": \"path\",\n      \"url\": \"/path/to/your/project/dir/jdlabails-php-project-analyzer-bundle/\"\n    }\n  ],\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdlabails%2Fphpprojectanalyzerbundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdlabails%2Fphpprojectanalyzerbundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdlabails%2Fphpprojectanalyzerbundle/lists"}