PHPackages                             rockprofile/dependency-visualiser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rockprofile/dependency-visualiser

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rockprofile/dependency-visualiser
=================================

Dependency visualiser for composer based projects

05PHPCI passing

Since Sep 22Pushed 3y ago1 watchersCompare

[ Source](https://github.com/petermcd/Dependency-Visualiser)[ Packagist](https://packagist.org/packages/rockprofile/dependency-visualiser)[ RSS](/packages/rockprofile-dependency-visualiser/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Dependency Visualiser
=====================

[](#dependency-visualiser)

With any modern PHP project, the number of dependencies can grow almost exponentially. Keeping track can be a difficult task, especially when those dependencies have a large number of sub dependencies.

For example this package has the following explicit dependencies:

- php
- ext-json (php extension)
- phpstan/phpstan (dev)
- infection/infection (dev)
- rockprofile/dependency-visualiser-neo4j (dev)

however, after composer does its thing the dependencies grows:

[!['Project Dependencies'](images/dependencies.png "Project Dependencies")](images/dependencies.png)

From 5 explicit dependencies, when considering a dev environment we now have 65 dependencies ranging from composer packages, PHP extensions and the language itself.

Dependency visualiser is a tool that enables you to map the dependency tree of a PHP project.

Requirements
------------

[](#requirements)

The package currently reads each composer file. It will adhere to the vendor-dir parameter of the composer file.

A basic storage engine for Neo4j exists on composer (rockprofile/dependency-visualiser-neo4j). As long as StorageInterface is implemented you can use any storage mechanism.

Current Limitations
-------------------

[](#current-limitations)

The biggest current limitation is that the script does not identify if there are conflicting required package versions. Although composer should complain if this does occur it would be handy for the script to identify this also.

It would also be good for the script to identify the minimum version required for each dependency in the event that multiple sub dependencies require the same package.

To Do
-----

[](#to-do)

- Identify the minimum available version of a dependency.
- Implement a parser for other package managers such as NPM.
- Modify the package to use the lock file if available falling back to individual files if necessary. This will help ensure that version numbers are logged. A lot of packages do not have versions in the Composer.Json
- Separate the content of Package to another package so that other packages can use them properly.

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3c8ca06babf7723c936e7c681d7b9cd909f029c87de9102d16f5e96a47ec2926?d=identicon)[RockProfile](/maintainers/RockProfile)

---

Top Contributors

[![petermcd](https://avatars.githubusercontent.com/u/148006?v=4)](https://github.com/petermcd "petermcd (32 commits)")

### Embed Badge

![Health badge](/badges/rockprofile-dependency-visualiser/health.svg)

```
[![Health](https://phpackages.com/badges/rockprofile-dependency-visualiser/health.svg)](https://phpackages.com/packages/rockprofile-dependency-visualiser)
```

###  Alternatives

[telephantast/message-bus

Thesis Message Bus

161.3k6](/packages/telephantast-message-bus)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
