Why PHPpackages.org?

PHPPackages.org was built to solve the following problems:

  • Define popularity rank for php packages.
    Currently there are two different metrics that define how popular is a package: the number of total download provided by packagist.org and the numbers of stars in sites like github.com or bitbucket.org. Each one of these two metrics give you an idea of how popular is a package but not a clear view of the impact of the package in the PHP world.

    A framework package like Laravel is the most starred php code repository in github but not the most downloaded in packagist.org. On the other hand, a library package like Monolog is one of the most downloaded packages in packagist.org but not as popular in github.

    Why? Because Laravel is a framework and frameworks are popular but they are not usually required by other packages, so their total downloads number is low. A library package might not be very popular in terms of stars, but if it is useful, many packages will require it, so the number of total downloads will be high.

  • PHPPackages.org tries to solve this problem and give you a clear view on how popular is a package based on a combination of different metrics.

  • Provide a space for discussion, not in terms of bugs and pull requests but in terms of package learning resources, case studies etc. If you find a interesting tutorial, article or book or you wonder how to do something specific with a package, just leave a comment...

  • Discover which packages use a specific package.
    Let’s say you want to learn about Behat. You read the manual, watched all video tutorials, but you want to see some actual working examples.
    That’s easy. Just go to https://phppackages.org/p/behat/behat/referenced-by and checkout all packages that reference Behat package ordered by popularity rank.

How you define popularity rank?

For each package, a score is calculated using the following formula:

score = 0.5 * average daily downloads + stars + 0.5 * forks + 2 * referenced by

Then the packages are ordered by this score. The package with the highest score will have the highest rank (#1)

If two packages share the same score, then the one that was recently updated will have a higher rank.

Which packages are included?

All packages provided by packagist.org, which is the official is the main composer repository.

What do these icons mean?

Popularity Rank
Number of packages that reference this package
Average daily downloads
Link to code repository

What does average daily downloads mean?

packagist.org provides the number of total, monthly and daily downloads for each PHP package.

Popularity rank is based on average daily downloads number which is defined as the number to total downloads divided by the lifetime of the package in days.

Why use this instead total downloads? Because in the case that a package was popular in the past but it is not popular not anymore, total downloads with still increase, while average daily downloads will decrease.

What I can do on phppackages.org?

Built with Laravel by psampaz