Create Project Directory
Initialize Project with Composer
In your new project directory run:
composer initThis will guide you through the creation of the composer.json file which contains the details, configuration options, and dependency definitions for your project.
Setup PSR-4 Autoloading
Add the following bit to your composer.json file to let composer know where your project's source files reside:
"autoload": {
"psr-4": {
"SayWebSolutions\\ProjectClass\\": "src/"
}
}Read more about PSR-4:
- https://en.wikipedia.org/wiki/PHP_Standard_Recommendation
- https://www.php-fig.org/psr/psr-4/
- https://stackoverflow.com/a/24869629
Setup Codesniffer to Perform Linting on Project Source Code
Documentation is available at the PHP_CodeSniffer GitHub project.
composer require --dev squizlabs/php_codesniffer ^3Add the following custom composer script definitions to your composer.json file in order to run codesniffer with the composer lint command, and fix resulting errors with the composer lint-fix command:
"scripts": {
"lint": "phpcs ./src --standard=PSR2",
"lint-fix": "phpcbf ./src --standard=PSR2"
}Run phpcs -i to see the list of installed coding standards that you can use based on your format / style preferences:
$ vendor/bin/phpcs -i
The installed coding standards are Squiz, PSR2, Zend, PSR12, PSR1, PEAR and MySourceThis stackoverflow question has some good summary info on the available standards, and it sounds like PSR2 is a sane default choice while getting aquainted with the linting process.