Common services with PHP applications
PHP applications all have *.php files. Then, there are other files, needed for configuration, templating, or also external services. These files gives a measure of the popularity of the common services with PHP applications.
The most famous is certainly composer, which is now present in virtually every PHP applications: over 3100 projects, we counted a little more than 170 that are not displaying a ‘composer.json’ file. Then, you can count on git, which is also present in a lot of other projects.
After these two darlings of the PHP community, there are a long list of services, online or installable, that leave one or more configuration files. Most of us recognize a .htaccess, .idea, or a package.json. Some services are quite popular, and that is reflected in the configuration files.
Here is the list of the common services with PHP application, as found in 3100 PHP open source projects.
Name | Files | Count |
---|---|---|
Composer | composer.json, composer.lock, vendor, composer.phar | 2934 |
git | .git, .gitignore, .gitattributes, .gitmodules, .mailmap, .githooks, .git-hooks | 2283 |
PHPUnit | phpunit.xml.dist, phpunit.xml, phpunit.xml.legacy, phpunit.dist.xml, phpunit-unit.xml | 946 |
github | .github | 829 |
editor config | .editorconfig | 548 |
Travis | .travis.yml, .env.travis, .travis, .travis.php.ini, .travis.coverage.sh, .travis.ini, travis.php.ini, .travis.install.sh | 393 |
Code Sniffer | .php_cs, .php_cs.dist, .phpcs.xml, php_cs.dist, phpcs.xml, phpcs.xml.dist, ruleset.xml, .phpcs.xml.dist | 376 |
PHPStan | phpstan.neon, .phpstan.neon, phpstan.neon.dist, phpstan-baseline.neon, phpstan.tests.neon.dist, phpstan.dist.neon | 334 |
npm | package.json, .npmignore, .npmrc, package-lock.json | 218 |
Docker | .dockerignore, .docker, docker-compose.yml, docker-compose.yaml, Dockerfile, .env.docker | 190 |
PHP-CS-Fixer | .php-cs-fixer.php, .php-cs-fixer.dist.php | 179 |
Psalm | psalm.xml, psalm-baseline.xml, psalm.xml.dist | 143 |
scrutinizer | .scrutinizer.yml | 132 |
dotenv | .env.dist, .env, .env.example | 130 |
Apache | .htaccess, htaccess.txt | 109 |
Webpack | webpack.mix.js, webpack.config.js, webpack.ssr.mix.js | 85 |
Drone | .dockerignore, .docker | 77 |
StyleCI | .styleci.yml | 76 |
esLint | .eslintrc, .eslintignore, eslintrc.js, .eslintrc.js, .eslintrc.json | 71 |
artisan | artisan | 65 |
Apple | .DS_Store | 56 |
Yarn | yarn.lock, .yarnclean | 54 |
infection | infection.yml, .infection.yml, infection.json.dist, infection.json | 53 |
codecov | .codecov.yml, codecov.yml | 47 |
PHPMD | phpmd.xml, phpmd.xml.dist, phpmd_ruleset.xml | 46 |
gitlab | .gitlab-ci.yml | 44 |
robots.txt | robots.txt | 44 |
favicon | favicon.ico | 43 |
jetBrains | .idea | 43 |
GrumPHP | grumphp.yml.dist, grumphp.yml, grumphp.dist.yml | 37 |
Prettier | .prettierrc, .prettierignore, .prettierrc.json, .prettierrc.js | 37 |
BabelJS | .babel.rc, .babel.js, .babelrc, babel.config.js | 36 |
box2 | box.json, box.json.dist | 34 |
codeClimate | .codeclimate.yml | 33 |
Coveralls | .coveralls.yml | 33 |
TailWind | tailwind.config.js, tailwind.js | 32 |
codeception | codeception.yml, codeception.dist.yml | 31 |
circleCI | circle.yml, .circleci | 30 |
Appveyor | appveyor.yml, .appveyor.yml | 29 |
ant | build.xml | 28 |
Stylelint | .stylelintrc, .stylelintignore, .stylelintrc.json, stylelint.config.js | 28 |
phpspec | phpspec.yml, .phpspec, phpspec.yml.dist | 27 |
PHPBench | phpbench.json, phpbench.json.dist | 26 |
SonarCube | sonar-project.properties | 26 |
Typescript | tsconfig.json | 26 |
Gulp | gulpfile.js, gulpfile.babel.js | 25 |
Node Version Manager | .nvmrc | 25 |
VisualStudio | .vscode | 24 |
MkDocs | mkdocs.yml | 23 |
PhpStorm | .phpstorm.meta.php | 23 |
Laravel Pint | pint.json | 22 |
Crowdin | crowdin.yml | 21 |
GruntJS | Gruntfile.js, gruntfile.js | 20 |
PHPDoc | .phpdoc.xml, phpdoc.dist.xml, phpdoc.xml.dist | 20 |
PostCSS | postcss.config.js | 20 |
vite | vite.config.js | 20 |
Behat | behat.yml.dist, behat.yml | 19 |
Vagrant | Vagrantfile | 19 |
jshint | .jshintrc, .jshintignore | 18 |
Jekyll | _config.yml, _config.toml | 17 |
renovate | renovate.json | 17 |
Symfony | symfony.lock | 16 |
transifex | .tx | 14 |
Composer Require Checker | composer-require-checker.json | 13 |
phan | .phan | 13 |
Read the Docs | .readthedocs.yml, .readthedocs.yaml | 13 |
ASP.net | web.config | 12 |
Browserslist | .browserslistrc | 11 |
robo | RoboFile.php, robo.yml.dist | 11 |
gitpod | .gitpod.yml, gitpod.code-workspace, .gitpod.dockerfile, .gitpod.Dockerfile | 10 |
phplint | .phplint.yml | 10 |
Lando dev | .lando.yml | 9 |
PHPDox | phpdox.xml.dist, phpdox.xml | 9 |
bitbucket | bitbucket-pipelines.yml, bitbucket-pipelines.yml.template, bitbucket_packagist_scripts.json | 8 |
Bower | bower.json, .bowerrc | 8 |
captainhook | captainhook.json | 8 |
cypress | cypress.config.js, cypress.config.ts | 8 |
direnv | .envrc | 8 |
DocHeader | .docheader | 8 |
Jest | jest.config.js | 8 |
Ahoy | ahoy.yml, .ahoy.l3d.yml | 7 |
Phive | phive.xml | 7 |
SVN | svn.revision, .svn, .svnignore | 7 |
doxygen | Doxyfile | 6 |
Laravel Mix | mix-manifest.json | 6 |
apigen | apigen.yml, apigen.neon | 5 |
Arcanist | .arclint, .arcconfig | 5 |
Flakes | flake.lock, flake.nix | 5 |
FlintCI | .flintci.yml | 5 |
Insight | .sensiolabs.yml, .symfony.insight.yaml | 5 |
stickler | .stickler.yml | 5 |
Atoum | .bootstrap.atoum.php, .atoum.php, .atoum.bootstrap.php | 4 |
pdepend | pdepend.xml, pdepend.xml.dist | 4 |
Qodana | qodana.yaml | 4 |
Drush | drush.services.yml | 3 |
gitbook | .gitbook.yaml | 3 |
humbug | humbug.json.dist, humbug.json | 3 |
Karma | ./karma.conf.js, ./karma.conf.coffee, ./karma.conf.ts, karma.conf.js | 3 |
lerna | lerna.json | 3 |
Sublime Linter | .csslintrc | 3 |
Vue | vue.config.js | 3 |
Couscous | couscous.yml | 2 |
deptrack | deptrac.yaml | 2 |
Docblox | docblox.dist.xml | 2 |
Exakat | .exakat.yaml, .exakat.yml, .exakat.ini | 2 |
Red Hat OpenShift | .openshift | 2 |
Snyk | .snyk | 2 |
yamllint | .yamllint.yaml | 2 |
Ansistrano | .ansistrano | 1 |
Garden.io | garden.yaml | 1 |
gherkin | .gherkin-lintrc | 1 |
Mercurial | .hg, .hgtags, .hgignore, .hgeol | 1 |
PHPCI | phpci.yml | 1 |
semantic versioning | .semver | 1 |
shifter | .shifter.json | 1 |
Analysis description
The survey was conducted on a list of 3100 PHP Open Source projects. That include the 1000 most common packagist projects, the trendy ones on github, and a collection of various less known projects.
The first and second level of files were collected, attributed to a service, Saas or installable, and counted. Some services don’t have any configuration, or these files are not in the first two levels of the filesystem: there were not counted.
Some services may have been missed. Please, tell us on Mastodon.