{"id":13883473,"url":"https://github.com/Dealerdirect/php-qa-tools","last_synced_at":"2025-07-16T19:31:00.870Z","repository":{"id":12290742,"uuid":"71466863","full_name":"Dealerdirect/php-qa-tools","owner":"Dealerdirect","description":"A metapackage for all PHP quality assurance tools we use at Dealerdirect","archived":false,"fork":false,"pushed_at":"2023-01-09T09:10:36.000Z","size":126,"stargazers_count":39,"open_issues_count":5,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-24T11:31:22.625Z","etag":null,"topics":["composer-metapackage","meta-package","metapackage","php","php-qa","php-quality-assurance","qa","qatools","quality-assistance","quality-assurance"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dealerdirect.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-20T13:38:27.000Z","updated_at":"2024-05-05T21:00:00.000Z","dependencies_parsed_at":"2023-01-13T16:52:39.274Z","dependency_job_id":null,"html_url":"https://github.com/Dealerdirect/php-qa-tools","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/Dealerdirect/php-qa-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dealerdirect%2Fphp-qa-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dealerdirect%2Fphp-qa-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dealerdirect%2Fphp-qa-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dealerdirect%2Fphp-qa-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dealerdirect","download_url":"https://codeload.github.com/Dealerdirect/php-qa-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dealerdirect%2Fphp-qa-tools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265534510,"owners_count":23783841,"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":["composer-metapackage","meta-package","metapackage","php","php-qa","php-quality-assurance","qa","qatools","quality-assistance","quality-assurance"],"created_at":"2024-08-06T09:01:33.663Z","updated_at":"2025-07-16T19:31:00.639Z","avatar_url":"https://github.com/Dealerdirect.png","language":"Shell","readme":"# Dealerdirect: PHP Quality Assurance Tools\n\n![Project Stage][project-stage-shield]\n![Maintenance][maintenance-shield]\n![Awesome][awesome-shield]\n[![License][license-shield]](LICENSE.md)\n\n[![Travis][travis-shield]][travis]\n[![Latest Version on Packagist][packagist-version-shield]][packagist-version]\n[![Packagist][packagist-shield]][packagist]\n\n\u003e _“If you don’t have time to do it right you must have time to do it over.”_\n\nThis is essentially a Composer meta package, creating a fast, easy and\nconvenient way of installing all PHP Quality Assurance tools.\n\n## Contents\n\nYou'll get the following tools by depending on this package:\n\n### Linters / Fixers\n\n- **[JSON Lint][json-lint]**: JSON Lint for PHP\n- **[PHP Coding Standards Fixer][phpcs-fixer]**: A tool to automatically fix PHP coding standards issues\n- **[PHP Parallel Lint][php-parallel-lint]**: Check syntax of PHP files faster than serial check with fancier output\n- **[PHP_CodeSniffer][phpcs]**: Detects violations of a defined set of coding standards\n\n### Quality Assistance\n\n- **[GrumPHP][grumphp]**: Githooks for PHP QA tooling\n- **[PHP_Depend][pdepend]**: Software metrics for PHP\n- **[PHPCPD][phpcpd]**: Copy/Paste Detector\n- **[PHPLOC][phploc]**: Quickly measure the size of a PHP project\n- **[PHPMD][phpmd]**: PHP Mess Detector\n- **[PhpMetrics][phpmetrics]**: A static analysis tool for PHP\n- **[SensioLabs Security Checker][security-checker]**: Checks for dependencies with known security vulnerabilities\n\n### Test Related\n\n- **[Codeception][codeception]**: Modern full-stack testing framework for PHP\n- **[ParaTest][paratest]**: Parallel testing for PHPUnit\n- **[PHPUnit][phpunit]**: Testing framework for PHP\n\n### Other\n\nOther packages that you'll get:\n\n- **[Composer Versions Check][versions-check]**: Checks if packages are up to date to last major versions after update\n- **[Deployer][deployer]**: Deployment tool for PHP\n- **[Deployer Recipes][deployer-recipes]**: Third party recipes to integrate with Deployer\n- **[Phinx][phinx]**: Phinx makes it ridiculously easy to manage the database migrations for your PHP app\n- **[PHP_CodeSniffer Composer Installer][phpcs-composer-installer]**: For installing PHP_CodeSniffer coding standards\n- **[PHPCompatibility][phpcompatibility]**: PHP Compatibility checks for PHP_CodeSniffer\n- **[Prestissimo][prestissimo]**: Composer parallel install plugin\n- **[Tombstone Analyzer][tombstone-analyzer]**: Report generation for Tombstones\n\n## Suggested\n\nThe following packages are suggested:\n\n- **[Behat][behat]**: Scenario-oriented BDD framework\n- **[ApiGen][apigen]**: Smart and Readable Documentation for your PHP project\n- **[Mockery][mockery]**: A simple yet flexible PHP mock object framework\n- **[PHP_CodeBrowser][php-codebrowser]**: A code browser that augments the code with information from various QA tools\n- **[phpcov]**: Command-line frontend for the PHP_CodeCoverage library\n- **[phpDocumentor][phpdoc]**: Documentation generator for PHP\n- **[phpDox][phpdox]**: Documentation generator for PHP\n- **[Sami][sami]**: An API documentation generator\n\n## Usage\n\nThis is a simple metapackage which can be used in two different ways; globally installed or on a per project basis.\n\nBoth methods have their strengths (+) and weaknesses (-).\n\n**Global installation**:\n\n- \\+ All tools are present anywhere on your system\n- \\+ Can be used on any codebase, even the ones that don't use Composer.\n- \\- You'll have to update manually, since it's not a project, versioning is not managed.\n\n**Per project installation**:\n\n- \\+ Versioning (update/installation) is provided in the project\n- \\- Tools not available system wide. You'll need to run them from a specific path.\n\nThese methods are not mutual exclusive. You can have your global installed version, which can be used anywhere, but\nstill use the one provided in a project.\n\n## Installation\n\n### Global installation\n\nThe following script will install a system wide Composer for you, including the QA tools.\n\n```bash\nbash \u003c(curl -S https://raw.githubusercontent.com/Dealerdirect/php-qa-tools/master/bin/install.sh)\n```\n\nThat's it. This can be put in any instructions, such as a README or someone's blog, since the logic is in the shell\nscript. Provided you download the script using https, the file has standard levels of authentication and encryption\nprotecting it from manipulation. We also sign the install with a GPG key, this way you can check if the downloaded\nreleases signature matches the public key of Dealerdirect.\n\n```bash\ngpg --keyserver hkp://keys.gnupg.net --recv-keys C4133165DF5EB4BAEABDADCACF1E7823C5339B59\ncurl -O https://raw.githubusercontent.com/Dealerdirect/php-qa-tools/master/bin/install.sh\ncurl -O https://raw.githubusercontent.com/Dealerdirect/php-qa-tools/master/bin/install.sh.sig\ngpg --verify install.sh.sig\nbash install.sh\n```\n\nThis is obviously a shell script, if you're really concerned about the argument that it may contain nefarious\nactivities within, you can easily review it before you run it.\n\n```bash\ncurl -O https://raw.githubusercontent.com/Dealerdirect/php-qa-tools/master/bin/install.sh\nless install.sh\nbash instal.sh\n```\n\nIf you already have a global Composer setup, you could include the tools manually, without the need for running\nthe shell script above.\n\n```bash\ncomposer global require \"dealerdirect/qa-tools:*\"\n```\n\n#### Per project installation\n\nThe other option is to install this on a per project basis.\n\nUsing Composer (preferred method):\n\n```bash\ncomposer require --dev \"dealerdirect/qa-tools\"\n```\n\nOr modify your `composer.json` to include `dealerdirect/qa-tools` in the `require-dev` sections:\n\n```json\n{\n  \"name\": \"acme/my-project\",\n  \"require\": {\n    \"…\": \"*\"\n  },\n  \"require-dev\": {\n    \"dealerdirect/qa-tools\": \"*\"\n  }\n}\n```\n\n## Contributing\n\nThis is an active open-source project. We are always open to people who want to\nuse the code or contribute to it.\n\nWe've set up a separate document for our [contribution guidelines](CONTRIBUTING.md).\n\nThank you for being involved! :heart_eyes:\n\n## Authors \u0026 contributors\n\nThe original idea and setup of this repository is by [Franck Nijhof][frenck], employee @ Dealerdirect.\n\nFor a full list off all author and/or contributors, check [the contributors page][contributors].\n\n## Working @ Dealerdirect\n\nDealerdirect is always on the looking for energetic and hard working developers\nand devops engineers.\n\nInterested in working at Dealerdirect?\nThen please be sure to check out [our vacancies][vacancies].\n\nDid not find a matching vacancy? Just [get in touch][get-in-touch]!\n\n[dealerdirect.com][dealerdirectcom]\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2016-2018 Dealerdirect B.V.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n[apigen]: http://www.apigen.org\n[awesome-shield]: https://img.shields.io/badge/awesome%3F-yes-brightgreen.svg\n[behat]: http://behat.org\n[codeception]: http://codeception.com\n[contributors]: https://github.com/dealerdirect/php-qa-tools/graphs/contributors\n[dealerdirectcom]: http://www.dealerdirect.com/en\n[deployer-recipes]: https://github.com/deployphp/recipes\n[deployer]: https://deployer.org\n[frenck]: https://github.com/frenck\n[get-in-touch]: https://www.dealerdirect.com/en/contact\n[grumphp]: https://github.com/phpro/grumphp\n[json-lint]: https://github.com/Seldaek/jsonlint\n[license-shield]: https://img.shields.io/github/license/dealerdirect/php-qa-tools.svg\n[maintenance-shield]: https://img.shields.io/maintenance/yes/2019.svg\n[mockery]: https://github.com/padraic/mockery\n[packagist-shield]: https://img.shields.io/packagist/dt/dealerdirect/qa-tools.svg\n[packagist-version-shield]: https://img.shields.io/packagist/v/dealerdirect/qa-tools.svg\n[packagist-version]: https://packagist.org/packages/dealerdirect/qa-tools\n[packagist]: https://packagist.org/packages/dealerdirect/qa-tools\n[paratest]: https://github.com/brianium/paratest\n[pdepend]: https://github.com/pdepend/pdepend\n[phinx]: https://phinx.org\n[php-codebrowser]: https://github.com/mayflower/PHP_CodeBrowser\n[php-parallel-lint]: https://github.com/JakubOnderka/PHP-Parallel-Lint\n[phpcompatibility]: https://github.com/PHPCompatibility/PHPCompatibility\n[phpcov]: https://github.com/sebastianbergmann/phpcov\n[phpcpd]: https://github.com/sebastianbergmann/phpcpd\n[phpcs-composer-installer]: https://github.com/Dealerdirect/phpcodesniffer-composer-installer\n[phpcs-fixer]: http://cs.sensiolabs.org\n[phpcs]: https://github.com/squizlabs/PHP_CodeSniffer\n[phpdoc]: https://www.phpdoc.org\n[phpdox]: http://phpdox.de\n[phploc]: https://github.com/sebastianbergmann/phploc\n[phpmd]: https://phpmd.org\n[phpmetrics]: http://www.phpmetrics.org\n[phpunit]: https://phpunit.de\n[prestissimo]: https://github.com/hirak/prestissimo\n[project-stage-shield]: https://img.shields.io/badge/Project%20Stage-Development-yellowgreen.svg\n[sami]: https://github.com/FriendsOfPHP/sami\n[security-checker]: https://security.sensiolabs.org\n[tombstone-analyzer]: https://github.com/scheb/tombstone-analyzer\n[travis-shield]: https://img.shields.io/travis/Dealerdirect/php-qa-tools.svg\n[travis]: https://travis-ci.org/Dealerdirect/php-qa-tools\n[vacancies]: https://www.dealerdirect.com/en/vacancies\n[versions-check]: https://github.com/Soullivaneuh/composer-versions-check\n","funding_links":[],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDealerdirect%2Fphp-qa-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDealerdirect%2Fphp-qa-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDealerdirect%2Fphp-qa-tools/lists"}