Common services with PHP applicationCommon 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.