{"adoption": {"forks": 521, "observed_at": "2026-08-28T04:05:52.958651+00:00", "stars": 1908}, "canonical_url": "https://ross.abutalabs.com/products/vichuploaderbundle", "card": {"archived": false, "artifact_type": "plugin", "description": "A simple Symfony bundle to ease file uploads with ORM entities and ODM documents.", "domain": ["web-development", "backend", "files"], "enriched": true, "function": ["file-upload", "orm", "templating"], "health_score": 99, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["dustin10/VichUploaderBundle"], "name": "dustin10/VichUploaderBundle", "platform": ["php", "self-hosted"], "pushed_at": "2026-08-20T07:28:37+00:00", "repo": "dustin10/VichUploaderBundle", "stars": 1908, "tags": ["symfony-bundle", "file-uploads", "doctrine-orm", "mongodb-odm", "phpcr", "web-server"], "topics": ["php", "symfony", "symfony-bundle", "bundle"], "urls": [], "use_cases": ["attach uploaded files to doctrine entities in symfony", "automatically name and store uploaded files", "delete files when entities are removed", "generate public urls for uploaded files in twig", "handle file uploads with mongodb odm documents"], "what_it_is": "A Symfony bundle that simplifies handling file uploads attached to Doctrine ORM entities, MongoDB ODM documents, or PHPCR ODM documents. It automates naming, storage, re-injection of uploaded files, deletion on entity removal, and templating helpers for public file URLs.", "when_to_avoid": ["you are not using the Symfony framework", "you need direct, low-level control over file storage without entity integration", "you handle uploads outside a persistence layer, e.g. plain PHP or another framework"], "when_to_choose": ["you use Symfony with Doctrine ORM/ODM and need entity-attached file uploads", "you want automatic file lifecycle management (save, inject, delete) tied to persistence", "you need configurable storage naming and templating helpers for file URLs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/vichuploaderbundle", "repo": "dustin10/VichUploaderBundle", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.958651+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:11:12.726122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4512f1824c25c5a431eade9b9a2d971fd49d0f9cae63f75ceb03be657f729284", "fetched_at": "2026-08-28T04:05:52.958651+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dustin10/VichUploaderBundle"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5389, "days_push": 13, "days_rel": 13, "gap_med": 36, "n_releases_24m": 16}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}