{"id":23822480,"url":"https://github.com/petermcd/dependency-visualiser","last_synced_at":"2026-06-22T13:31:54.621Z","repository":{"id":62536724,"uuid":"185693893","full_name":"petermcd/Dependency-Visualiser","owner":"petermcd","description":"Package to help visualise PHP package dependencies","archived":false,"fork":false,"pushed_at":"2022-09-22T20:33:18.000Z","size":651,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-17T03:44:26.421Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petermcd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-08T23:41:18.000Z","updated_at":"2022-09-22T20:33:23.000Z","dependencies_parsed_at":"2022-11-02T15:15:52.402Z","dependency_job_id":null,"html_url":"https://github.com/petermcd/Dependency-Visualiser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petermcd%2FDependency-Visualiser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petermcd%2FDependency-Visualiser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petermcd%2FDependency-Visualiser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petermcd%2FDependency-Visualiser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petermcd","download_url":"https://codeload.github.com/petermcd/Dependency-Visualiser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240105469,"owners_count":19748465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-02T09:19:27.958Z","updated_at":"2025-11-12T13:04:58.980Z","avatar_url":"https://github.com/petermcd.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dependency Visualiser\n\nWith any modern PHP project, the number of dependencies can grow\nalmost exponentially. Keeping track can be a difficult task,\nespecially when those dependencies have a large number of sub\ndependencies.\n\nFor example this package has the following explicit dependencies:\n\n* php\n* ext-json (php extension)\n* phpstan/phpstan (dev)\n* infection/infection (dev)\n* rockprofile/dependency-visualiser-neo4j (dev)\n\nhowever, after composer does its thing the dependencies grows:\n\n!['Project Dependencies'](images/dependencies.png \"Project Dependencies\")\n\nFrom 5 explicit dependencies, when considering a dev environment\nwe now have 65 dependencies ranging from composer packages, PHP\nextensions and the language itself.\n\nDependency visualiser is a tool that enables you to map\nthe dependency tree of a PHP project.\n\n## Requirements\n\nThe package currently reads each composer file. It will adhere \nto the vendor-dir parameter of the composer file.\n\nA basic storage engine for Neo4j exists on composer\n(rockprofile/dependency-visualiser-neo4j). As long as \nStorageInterface is implemented you can use any storage mechanism.\n\n## Current Limitations\n\nThe biggest current limitation is that the script does not identify if\nthere are conflicting required package versions. Although composer\nshould complain if this does occur it would be handy for the script to \nidentify this also.\n\nIt would also be good for the script to identify the minimum version\nrequired for each dependency in the event that multiple sub dependencies\nrequire the same package.\n\n## To Do\n* Identify the minimum available version of a dependency.\n* Implement a parser for other package managers such as NPM.\n* Modify the package to use the lock file if available falling back to\nindividual files if necessary. This will help ensure that version numbers\nare logged. A lot of packages do not have versions in the Composer.Json\n* Separate the content of Package to another package so that other packages \ncan use them properly.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetermcd%2Fdependency-visualiser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetermcd%2Fdependency-visualiser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetermcd%2Fdependency-visualiser/lists"}