Symfony2 adoption

While preparing my talk for the SymfonyCon in Warsaw (Symfony components in the wild), I realised it would be nice to show what's the adoption of Symfony components. So I wrote a crawler to gather this kind of data from packagist.org and shared it on the conference. This article presents my findings.

Projects on packagist.org

The table bellow shows a total number of projects found on packagist.org, which indicated a dependency on either one of the components or the whole framework. I looked for dependencies in the require, require-dev and suggest sections.

Zend Framework is included for comparision, as it's the only other framework I could think of, which is also built in a modular way (kind of).

Out of 4994 packages that depend on Symfony, there's 1911 that depend on the symfony/framework-bundle and 1098 that depend on symfony/symfony. The rest depends on components.

There's also 112 packages depending on both Symfony and Zend Framework.

Total number of packages on packagist.org24317
Depends on Symfony4994
Depends on Zend Framework1356
Other packages18079

The chart below shows the adoption of components alone. I only included direct dependencies as given in composer.json. The numbers don't include indirect dependencies. For example, Laravel depends on Symfony, but a package which depends on Laravel won't be accounted here, unless it also indicated a dependency on one of the Symfony components.

Symfony components adoption

As you can notice, the yaml component is the most popular one. I guess it shows that there's a need for a natvie yaml support in PHP.

The second place is no surprise either, as the console is one of the most useful components that can be leveraged without the rest of the framework.

Detailed numbers can be found in the table below and here are the results of crawling: results.csv.

ComponentBundlesOtherTotal
yaml285519804
console176615791
finder156317473
config129281410
http-foundation83292375
form27696372
process46266312
validator176132308
dependency-injection136146282
event-dispatcher40233273
http-kernel118150268
class-loader122144266
browser-kit11995214
filesystem25187212
css-selector5792149
security5867125
translation11103114
routing2886114
options-resolver195271
property-access175370
dom-crawler125870
serializer134760
expression-language152641
templating161733
locale72229
stopwatch42226
debug02626
intl21113
Jakub Zalas

Jakub Zalas

Agile PHP Developer, addicted to BDD and Symfony