Create a graph with all packages installed (Packages, packages requires, root package require-dev), (*1)
Export to a file composer-dependency.svg in svg format to the root of your project, at the same place as the composer.json, (*2)
./vendor/bin/composer-dependency export
Or, (*3)
./vendor/bin/composer-dependency export .
Export to a specific path, (*4)
./vendor/bin/composer-dependency export . my/custom/path.svg
Export to a file composer-dependency.png in png format., (*5)
./vendor/bin/composer-dependency export . composer-dependency.png
Export to a file composer-dependency.jpeg in jpeg format., (*6)
./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
./vendor/bin/composer-dependency --tags="type business" export
- 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., (*7)
./vendor/bin/composer-dependency
--tags="type business type data-mining" export
- 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:, (*8)
{
"extra": {
"type": "business",
"source_code": "python"
}
}
Tags can be "deep"., (*9)
./vendor/bin/composer-dependency
--tags="tag.type business tag.type data-mining" export
A corresponding composer extra could look like below:, (*10)
{
"extra": {
"tag": {
"type": "business",
"source_code": "python"
}
}
}
Off course, you can still combine options., (*11)
Available options are:
* format
* packages
* no-packages
* vendors
* no-vendors
* dep-packages
* no-dep-packages
* dep-vendors
* no-dep-vendors
* no-root-dev-dep, (*12)
Available formats are:
* svg
* png
* jpeg, (*13)
Create several graphes by packages or by vendors
./vendor/bin/composer-dependency --separate-graph-packages="vendorA/packageA vendorA/packageB" multi-export
./vendor/bin/composer-dependency --separate-graph-vendors="vendorA vendorB" --format="png" multi-export
./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., (*14)
Relies heavily on: