- What is fsi/doctrine-extensions used for?
- It is a small library of Doctrine ORM behavioral extensions: entity listeners and subscribers plus traits and interfaces that inject cross-cutting behavior such as timestamping, blame/audit tracking, soft delete and similar concerns into Doctrine entities. It targets PHP projects and, via the laravel-doctrine bridge, Laravel applications. It solves the same problem space as gedmo/doctrine-extensions.
- Does fsi/doctrine-extensions work with Laravel?
- Laravel is Eloquent-first, so using this package means adding the third-party laravel-doctrine bridge, a second persistence model, and a team comfortable with the Unit of Work, identity map and DQL. Doctrine can be a sound choice for rich-domain codebases, but it should be an existing architectural decision rather than something this package justifies. If your Laravel app is Eloquent-based, this package is a poor fit.
- Is fsi/doctrine-extensions compatible with Doctrine ORM 3 and DBAL 4?
- The last release shown is 2021-08-09, so the package is likely pinned to doctrine/orm ^2.x. Doctrine ORM 3 and DBAL 4 removed annotations, changed the event API surface and dropped legacy paths, so compatibility must be verified. Run composer why-not with your current constraints before assuming it resolves.
- How do I install fsi/doctrine-extensions?
- Install it with composer require fsi/doctrine-extensions; the Composer step is trivial and the MIT license is permissive. The real work is wiring listener registration into the Doctrine config and EventManager, plus a service provider if you use Laravel. Expect entity mapping changes and migration diffs as part of adoption.
- What are the best alternatives to fsi/doctrine-extensions?
- gedmo/doctrine-extensions is the de facto standard: large contributor base, active releases and coverage for timestampable, blameable, soft delete and loggable behaviors. If gedmo already covers the behavior you need, choosing a 3-star, zero-dependent package over it is hard to defend in a design review. For narrow cases, a small listener you own can be a better option than either dependency.
- Does fsi/doctrine-extensions work on PHP 8.2 and PHP 8.3?
- A 2021-era library is likely pinned to older Doctrine versions and may emit deprecations on PHP 8.2 and 8.3, which surface as noise or failures under error_reporting(E_ALL) in CI. Before adopting, run the package's test suite on your PHP version and check for deprecation output. Treat a green CI run as an acceptance criterion, not an afterthought.
- Is fsi/doctrine-extensions still maintained?
- Maintenance signals are weak: the last release is dated 2021-08-09, the package has about 3 stars and 0 dependents, and it is maintained by a single agency (FSi). There is no clear indication of an active roadmap, security policy or CI badge. The bus factor and lack of production adoption at observable scale are real risks.
- How do I add timestamps or soft delete to Doctrine entities with this package?
- Adopting the package means implementing its interfaces and using its traits in your entity classes, then registering the entity listeners or subscribers in the Doctrine event system. That couples domain classes to a third-party library's contracts, which is structural rather than incidental coupling. Verify behavior with an integration test that asserts the emitted SQL.
- Should I use fsi/doctrine-extensions in production?
- The recommendation from the technical evaluation is not to adopt it as a dependency. If a required behavior is not served by gedmo, vendor a fork instead. If you still want to evaluate, run a bounded spike of two dev-days or less against one non-critical module, with acceptance criteria covering install on your PHP and Doctrine versions, no CI deprecations, and a written diff of mapping changes.
- What license does fsi/doctrine-extensions use, and can I fork or vendor it?
- It is released under the MIT license, which is permissive and fine for commercial use. If you fork it, you must preserve the copyright and license notice. Vendoring a fork is the safer route if you need a behavior the package provides and gedmo does not, since you control maintenance.