Common services with PHP applicationCommon services and tools for 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 2973
git .git, .gitignore, .gitattributes, .gitmodules, .mailmap, .githooks, .git-hooks, .git-blame-ignore-revs 2322
A readme file README.md, readme.md, README, readme.rst, readme.txt 2085
A license file LICENSE, license.md, LICENSE.md, license.txt, LICENSE.txt, license.rst 1606
PHPUnit phpunit.xml.dist, phpunit.xml, phpunit.xml.legacy, phpunit.dist.xml, phpunit-unit.xml 987
github .github 890
editor config .editorconfig 577
Travis .travis.yml, .env.travis, .travis, .travis.php.ini, .travis.coverage.sh, .travis.ini, travis.php.ini, .travis.install.sh 390
Code Sniffer .php_cs, .php_cs.dist, .phpcs.xml, php_cs.dist, phpcs.xml, phpcs.xml.dist, ruleset.xml, .phpcs.xml.dist 378
PHPStan phpstan.neon, .phpstan.neon, phpstan.neon.dist, phpstan-baseline.neon, phpstan.tests.neon.dist, phpstan.dist.neon 365
npm package.json, .npmignore, .npmrc, package-lock.json 240
Docker .dockerignore, .docker, docker-compose.yml, docker-compose.yaml, Dockerfile, .env.docker 216
PHP-CS-Fixer .php-cs-fixer.php, .php-cs-fixer.dist.php 203
Makefile Makefile 152
dotenv .env.dist, .env, .env.example 144
Psalm psalm.xml, psalm-baseline.xml, psalm.xml.dist 142
scrutinizer .scrutinizer.yml 132
Apache .htaccess, htaccess.txt 118
Drone .dockerignore, .docker 87
Webpack webpack.mix.js, webpack.config.js, webpack.ssr.mix.js 86
StyleCI .styleci.yml 76
artisan artisan 73
rector rector.php 73
Apple .DS_Store 64
esLint .eslintrc, .eslintignore, eslintrc.js, .eslintrc.js, .eslintrc.json 64
infection infection.yml, .infection.yml, infection.json.dist, infection.json 56
Yarn yarn.lock, .yarnclean 55
codecov .codecov.yml, codecov.yml 53
VisualStudio .vscode, .devcontainer 48
PHPMD phpmd.xml, phpmd.xml.dist, phpmd_ruleset.xml 47
robots.txt robots.txt 47
favicon favicon.ico 46
gitlab .gitlab-ci.yml 45
jetBrains .idea 41
Prettier .prettierrc, .prettierignore, .prettierrc.json, .prettierrc.js 41
TailWind tailwind.config.js, tailwind.js 41
BabelJS .babel.rc, .babel.js, .babelrc, babel.config.js 39
Coveralls .coveralls.yml 36
GrumPHP grumphp.yml.dist, grumphp.yml, grumphp.dist.yml 36
codeClimate .codeclimate.yml 35
box2 box.json, box.json.dist 32
circleCI circle.yml, .circleci 31
PostCSS postcss.config.js 31
codeception codeception.yml, codeception.dist.yml 30
Typescript tsconfig.json 30
Appveyor appveyor.yml, .appveyor.yml 29
ant build.xml 29
PHPBench phpbench.json, phpbench.json.dist 28
Laravel Pint pint.json 28
phpspec phpspec.yml, .phpspec, phpspec.yml.dist 28
Stylelint .stylelintrc, .stylelintignore, .stylelintrc.json, stylelint.config.js 28
vite vite.config.js 28
Node Version Manager .nvmrc 27
easy coding standards ecs.php 26
MkDocs mkdocs.yml 26
PhpStorm .phpstorm.meta.php 26
SonarCube sonar-project.properties 26
PHPDoc .phpdoc.xml, phpdoc.dist.xml, phpdoc.xml.dist 25
Gulp gulpfile.js, gulpfile.babel.js 24
Phive phive.xml, .phive 23
Crowdin crowdin.yml 22
GruntJS Gruntfile.js, gruntfile.js 20
Behat behat.yml.dist, behat.yml 19
renovate renovate.json 19
Vagrant Vagrantfile 19
jshint .jshintrc, .jshintignore 18
Read the Docs .readthedocs.yml, .readthedocs.yaml 17
Symfony symfony.lock 17
Jekyll _config.yml, _config.toml 16
phan .phan 15
Composer Require Checker composer-require-checker.json 14
transifex .tx 14
Browserslist .browserslistrc 13
ASP.net web.config 12
husky .husky 11
phplint .phplint.yml 11
robo RoboFile.php, robo.yml.dist 11
captainhook captainhook.json 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
cypress cypress.config.js, cypress.config.ts 8
direnv .envrc 8
DocHeader .docheader 8
gitpod .gitpod.yml, gitpod.code-workspace, .gitpod.dockerfile, .gitpod.Dockerfile 8
Ahoy ahoy.yml, .ahoy.l3d.yml 7
Jest jest.config.js 7
SVN svn.revision, .svn, .svnignore 7
apigen apigen.yml, apigen.neon 6
Arcanist .arclint, .arcconfig 6
Laravel Mix mix-manifest.json 6
doxygen Doxyfile 5
Flakes flake.lock, flake.nix 5
FlintCI .flintci.yml 5
Insight .sensiolabs.yml, .symfony.insight.yaml 5
Atoum .bootstrap.atoum.php, .atoum.php, .atoum.bootstrap.php 4
gitbook .gitbook.yaml 4
pdepend pdepend.xml, pdepend.xml.dist 4
stickler .stickler.yml 4
Vue vue.config.js 4
Couscous couscous.yml 3
deptrack deptrac.yaml 3
Drush drush.services.yml 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
Snyk .snyk 3
Sublime Linter .csslintrc 3
Docblox docblox.dist.xml 2
Exakat .exakat.yaml, .exakat.yml, .exakat.ini 2
Garden.io garden.yaml 2
gherkin .gherkin-lintrc 2
Red Hat OpenShift .openshift 2
Qodana qodana.yaml 2
yamllint .yamllint.yaml 2
Ansistrano .ansistrano 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.