kassko / composer-graph-dependency
Filters and displays graphes dependencies of packages installed
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 2
Forks: 3
Open Issues: 0
pkg:composer/kassko/composer-graph-dependency
Requires
- php: >=5.5.0 || ^7.0
- clue/graph-composer: ^1.0.0
- graphp/graphviz: ^0.2.0
- jms/composer-deps-analyzer: 0.1.*
- symfony/console: ^2.7 || ^3.0
This package is not auto-updated.
Last update: 2025-10-26 02:27:51 UTC
README
Create a graph with all packages installed (Packages, packages requires, root package require-dev)
Export to a file composer-dependency.svg in svg format to the root of your project, at the same place as the composer.json
./vendor/bin/composer-dependency export
Or
./vendor/bin/composer-dependency export .
Export to a specific path
./vendor/bin/composer-dependency export . my/custom/path.svg
Export to a file composer-dependency.png in png format.
./vendor/bin/composer-dependency export . composer-dependency.png
Export to a file composer-dependency.jpeg in jpeg format.
./vendor/bin/composer-dependency export . composer-dependency.jpeg
Create a graph and filter packages to display
Do not display root dev dependencies (require-dev)
./vendor/bin/composer-dependency --no-root-dev-dep export
Create a graph with all packages installed except one
./vendor/bin/composer-dependency --no-packages="vendorA/packageA" export
Create a graph with all packages installed except those indicated
./vendor/bin/composer-dependency --no-packages="vendorA/packageA vendorA/packageB vendorB/packageA" export
Create a graph with only display package installed indicated
./vendor/bin/composer-dependency --packages="vendorA/packageA vendorA/packageB vendorB/packageA" export
Create a graph with all packages installed except those of vendors indicated
./vendor/bin/composer-dependency --no-vendors="vendorA vendorB" export
Create a graph with only packages installed from vendors indicated
./vendor/bin/composer-dependency --vendors="vendorA vendorB" export
Combine the options above: display all packages installed from vendorA except packageB
./vendor/bin/composer-dependency --vendors="vendorA" --no-packages="vendorA/packageB" export
Create a graph and filter dependencies to display
Note that the following command displays only packages installed from vendorA but all dependencies from all vendors
./vendor/bin/composer-dependency --vendors="vendorA" --vendors-dep="vendorA"
Create a graph with only packages installed from vendorA and dependencies from vendorA too
./vendor/bin/composer-dependency --vendors="vendorA" --dep-vendors="vendorA" export
Create a graph with only packages installed from vendorA and all dependencies except those from vendorB and vendorC and the dependency vendorD/packageA
./vendor/bin/composer-dependency --vendors="vendorA" --no-dep-vendors="vendorA vendorB vendorC" --no-dep-packages="vendorD/packageA" export
Create a graph with only some package having a specific tag in composer.json "extra" key.
Create a graph with package having in composer.json "extra" key a tag "type" with the value "business". Concretely, this mean you create a graph with only your business packages.
./vendor/bin/composer-dependency --tags="type business" export
Create a graph with package having in composer.json "extra" key
- a tag "type" with the value "business"
- or this same tag "type" with the value "data-mining"
Concretely, this mean you create a graph with only your business and data-mining packages.
./vendor/bin/composer-dependency --tags="type business type data-mining" export
Create a graph without package having in composer.json "extra" key
- a tag "type" with the value "bridge"
- or a tag "source_code" with the value "python"
- or this same tag "source_code" with the value "ruby"
./vendor/bin/composer-dependency
--no-tags="type bridge source_code python source_code ruby"
A composer extra could look like below:
{
"extra": {
"type": "business",
"source_code": "python"
}
}
Tags can be "deep".
./vendor/bin/composer-dependency --tags="tag.type business tag.type data-mining" export
A corresponding composer extra could look like below:
{
"extra": {
"tag": {
"type": "business",
"source_code": "python"
}
}
}
Off course, you can still combine options.
Available options are:
formatpackagesno-packagesvendorsno-vendorsdep-packagesno-dep-packagesdep-vendorsno-dep-vendorsno-root-dev-dep
Available formats are:
svgpngjpeg
Create several graphes by packages or by vendors
Create several graphes to a directory named composer-dependency in svg format (that is the default format), one by packages indicated. Each graph display one package and all its dependency package.
./vendor/bin/composer-dependency --separate-graph-packages="vendorA/packageA vendorA/packageB" multi-export
Create several graphes to a directory named composer-dependency in png format, one by vendor indicated. Each graph displays all vendor packages.
./vendor/bin/composer-dependency --separate-graph-vendors="vendorA vendorB" --format="png" multi-export
Create several graphes to a directory named composer-dependency in png format, one for each package of each vendors indicated.
./vendor/bin/composer-dependency --separate-graph-vendors-packages="vendorA vendorB" --format="png" multi-export
Combine with filters
./vendor/bin/composer-dependency --no-packages="vendorA/packageB" --separate-graph-vendors="vendorA vendorB" --format="png" multi-export
Note that some combinations have no sense. For the moment, there is no control of the consistency of a combinations. It's to you to be carefull. This will be fixed later.