doctrine/annotations
Doctrine Annotations parses and reads docblock annotations for PHP projects. Considered feature complete since PHP 8 attributes are the native replacement; this package now focuses on bugfixes and security fixes. Documentation available on doctrine-project.org.
This package should only be considered for legacy maintenance scenarios where existing codebases rely on Doctrine Annotations (e.g., older Doctrine ORM versions <2.13). For new projects, it should be explicitly avoided in favor of PHP 8+ native attributes. Product decisions must prioritize migration planning for existing systems using this package, as continuing to depend on it increases technical debt and future upgrade complexity. Build vs. buy analysis should reject this package for greenfield projects since PHP's built-in attributes eliminate the need for external annotation parsing.
Only when maintaining legacy PHP 7.x applications that cannot immediately upgrade to PHP 8+ or when dependent libraries (e.g., older Doctrine ORM versions) require it. Avoid entirely for new projects, systems on PHP 8+, or when dependencies support attribute-based alternatives. If your project uses Doctrine ORM 2.13+, migrate to native attributes instead. Look elsewhere for all modern use cases—PHP's native attributes provide superior performance, type safety, and tooling support without external dependencies.
Executives: "This package is deprecated and actively discouraged for new development. Continuing to use it creates technical debt, increases future migration costs, and blocks modern PHP adoption. Migrating to native PHP attributes now will reduce long-term maintenance expenses, improve code quality, and future-proof our stack. We recommend allocating resources to eliminate this dependency across all projects within 12 months."
Engineering: "Do not introduce this package in any new code. For existing usage: 1) Audit all annotation-dependent components, 2) Prioritize migration to PHP 8+ attributes using tools like Rector, 3) Upgrade Doctrine ORM to v2.13+ where possible. Treat this as a legacy dependency with no new feature development—focus all efforts on replacement."
How can I help you explore Laravel packages today?