{"adoption": {"forks": 1252, "observed_at": "2026-08-28T04:08:36.287120+00:00", "stars": 4140}, "canonical_url": "https://ross.abutalabs.com/products/doctrineextensions", "card": {"archived": false, "artifact_type": "library", "description": "Doctrine2 behavioral extensions, Translatable, Sluggable, Tree-NestedSet, Timestampable, Loggable, Sortable", "domain": ["databases", "web-development", "backend", "developer-tools"], "enriched": true, "function": ["orm", "middleware", "internationalization", "logging"], "health_score": 98, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["doctrine-extensions/DoctrineExtensions"], "name": "doctrine-extensions/DoctrineExtensions", "platform": ["php"], "pushed_at": "2026-08-10T17:08:40+00:00", "repo": "doctrine-extensions/DoctrineExtensions", "stars": 4140, "tags": ["doctrine", "doctrine-orm", "doctrine-odm", "behaviors", "sluggable", "timestampable", "translatable", "tree", "nested-set", "soft-deleteable", "symfony", "laravel"], "topics": ["doctrine", "php", "doctrine-orm", "doctrine-odm-mongodb", "nested-sets"], "urls": [], "use_cases": ["add slugs to doctrine entities", "translate doctrine entities into multiple languages", "manage hierarchical tree structures with doctrine orm", "automatically set created and updated timestamps on entities", "track entity change history and versions", "soft delete records instead of removing them", "record which user created or updated an entity", "sort entities with an orderable position field"], "what_it_is": "A collection of behavioral extensions for Doctrine ORM and MongoDB ODM, including Translatable, Sluggable, Tree (nested set, closure, materialized path), Timestampable, Loggable, Sortable, Blameable, and SoftDeleteable. Behaviors attach to Doctrine's event system to automatically handle record changes on flush.", "when_to_avoid": ["you use a different ORM or plain PDO without Doctrine", "you need only one simple behavior that is trivial to implement inline", "your project requires a framework-specific ORM feature set outside Doctrine's event system"], "when_to_choose": ["you use Doctrine ORM or MongoDB ODM and need common entity behaviors without writing them yourself", "you need multilingual content stored per entity in PHP applications", "you want mature, widely used Doctrine extensions with Symfony and Laravel integration docs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/doctrineextensions", "repo": "doctrine-extensions/DoctrineExtensions", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "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:08:36.287120+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.287120+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:59.218134+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "26739fcb1f844fe88146f69e2dca34ebc10a179e95f2ccf12e5206171865b920", "fetched_at": "2026-08-28T04:08:36.287120+00:00", "kind": "readme", "missing": false, "url": "https://github.com/doctrine-extensions/DoctrineExtensions"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 83}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5843, "days_push": 23, "days_rel": 32, "gap_med": 60.0, "n_releases_24m": 9}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}