jasny / php-code-quality
Quality assurance toolchain
Installs: 10 939
Dependents: 48
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 4
Open Issues: 3
Requires
- jasny/phpunit-extension: ^0.4.0
- mikey179/vfsstream: ^1.6
- phpstan/phpstan: >= 0.11.0, < 2.0.0
- phpstan/phpstan-strict-rules: >= 0.11.0, < 2.0.0
- phpunit/phpunit: >= 8.0, < 10.0
- squizlabs/php_codesniffer: ^3.4
Suggests
- codeception/codeception: BDD testing framework for testing applications
- jasny/codeception-module: Codeception integration for Jasny MVC
README
Coding standard
The Jasny PHP coding standard follows the PSR-2 coding standard with a few additions.
Installation
All PHP projects of Legal Things should include this package. It can be installed through composer.
composer require --dev jasny/php-code-quality
Toolchain
PHPUnit
PHPUnit is a programmer-oriented testing framework for PHP. The unit tests should be in the
tests
directory.
Copy the PHPUnit configuration into the projects root folder
cp vendor/jasny/php-code-quality/phpunit.xml.dist .
vfsStream
vfsStream is a stream wrapper for a virtual file system that may be helpful in unit tests to mock the real file system.
Codeception (optional)
Codeception is a BDD style testing frameworks for PHP. It can be used for unit, functional and integration tests.
The Codeception module for Jasny MVC allows you to run tests for applications that use Jasny MVC.
Codeception isn't installed by default. It can be installed through composer.
composer require --dev codeception/codeception jasny/codeception-module
PHP Cloc
phpcloc Count the lines of codes in the project as PHP implementation of cloc.
PHP CodeSniffer
phpcs tokenises PHP files and detects violations of a defined set of coding standards. It is an essential development tool that ensures your code remains clean and consistent.
This package comes with a custom ruleset which embodies the Jasny PHP coding standard, which should be copied to the project root folder.
cp vendor/jasny/php-code-quality/phpcs.xml.dist phpcs.xml
PHPStan
PHPStan is a static code analysis tool. It moves PHP closer to compiled languages in the sense that the correctness of each line of the code can be checked before you run the actual line.
Copy the PHPStan configuration to the project root folder
cp vendor/jasny/php-code-quality/phpstan.neon.dist phpstan.neon
Composer scripts
Composer can be configured to run all tests
"scripts": {
"test": [
"phpunit",
"phpcloc cloc src",
"phpstan analyse",
"phpcs -p src"
]
},
"scripts-descriptions": {
"test": "Run all tests and quality checks"
}
To run all tests do
composer run-script test
Services
Open source projects should all of these quality assurance services. Closed source project may use a single service to both run tests and code quality checks in order to save costs.
Travis
Travis CI will run all unit tests on each pull-request and push to the master branch.
Copy the Travis CI configuration file from the php-code-quality directory.
cp vendor/jasny/php-code-quality/travis.yml.dist .travis.yml
Scrutinizer
Scrutinizer tests code quality using PHP CodeSniffer, PHPStan and a custom analysis tool from Scrutinizer. It also collects tests coverage results from Travis CI.