barth / dev-pack
A flex package to provide usefull tools for development only
Installs: 2 423
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Type:symfony-pack
Requires
- endroid/installer: ^1.0
- friendsofphp/php-cs-fixer: ^2.13
- j13k/yaml-lint: ^1.1
- jakub-onderka/php-parallel-lint: ^1.0
- phpmd/phpmd: ^2.6
- phpro/grumphp: ^0.14.2
- phpstan/phpstan-symfony: ^0.10.1
- sclable/xml-lint: ^0.2.4
- sebastian/phpcpd: ^4.0
- seld/jsonlint: ^1.7
- sensiolabs/security-checker: ^5.0 || ^6.0
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-10-24 19:57:36 UTC
README
This is a Flex pack to install multiple dev tools.
Why
On Symfony, we create a project rapidly using composer :
composer create-project symfony/skeleton
After, we just have to require some pack dependencies, and thanks to flex, all is configured.
But, for some time, when I start a new project, I add dev-dependencies to improve code quality and keep it in the long run, so I grouped them in this pack with pre-configured files.
It allows me to have clean codes rules to share with project team, and avoid useless discussion in Code Reviews.
Installation and usage
For the following, I assume you just freshly created a new Symfony Project.
Require the pack as dev dependency
composer require --dev barth/dev-pack
You now have my list of dev tools, with preconfigured files. Don't hesitate to alterate with your settings or feel free to fork this repo to have your own list and settings.
Cleaning / Unpack
Because it's a symfony-pack, you may want to unpack it to keep only required dependencies and no more barth/dev-pack in your composer.json.
⚠️ I don't recommand to require this pack direclty with the --unpack flex option. If you do this, you won't have the preconfigured files.
To do this properly, unpack it after install:
composer unpack barth/dev-pack
Then, you can also remove endroid/installer which provides a composer plugin to copy file from my pack.
composer remove --dev endroid/installer
List of installed packages
PHP CodeSniffer
This is the most well-known tool in the PHP community, configured with PSR2 ruleset.
PHPMD - Mess Detector
This tool focuses on the form of the code. Here are the different rules it enforces:
- Clean Code Rules: Do not pass a boolean as a parameter of a function, avoid
else
and access instatic
. - Code Size Rules: A class too long, a method that takes too much parameter, a function too complicated, it's here that it happens.
- Controversial Rules: Controversial rules... They focus on naming, especially through the use of CamelCase.
- Design Rules: A collection of rules that detect problems with software design.
- Naming Rules: Rules on names of variables, methods, classes - too long, too short, etc.
- Unused Code Rules: Detects unused pieces of code.
PHPStan - Static Analysis Tool
This tool prevents potential bugs before even executing the code. You can see list of its features and even test it online
PHPCPD - Copy / Paste Detector
Very useful to refactor code and avoid having identical pieces of code in several places of a project.
PHP-CS-Fixer
Similar to PHP CodeSniffer, it offers in my opinion a simpler configuration, and fixes errors in a command line.
GrumPHP
Allows to orchestrate all these tools on the precommit hook.
Contribute
First of all, thank you for contributing ❤️
Keep in mind that if you add tools, I certainly accept only if fits with my own needs. Don't hesitate to fork this project to fit with your organization needs.
License
The MIT License (MIT). Please see License File for more information.