agence-adeliom/easy-common-bundle
Symfony bundle providing common utilities for EasyAdmin: reusable Doctrine entity traits (ID, slug, timestamps, soft delete, publish/status) and a PHP 8 enum polyfill/helper with static constructors, validation, and typed enum parameters.
ID, Timestampable, SoftDeletable), reducing boilerplate and enforcing consistency.EntityStatusTrait and EntityThreeStateStatusTrait align with DDD principles, enabling cleaner domain modeling without tight coupling to Doctrine.SoftDeletable relies on deletedAt). Projects using other ORMs (e.g., Eloquent) would need adaptation.3.x. Downgrading risks breaking changes (e.g., Enum syntax).Timestampable to all entities) may lead to over-engineering or unintended side effects (e.g., deletedAt in non-deletable entities).EntityNameSlugTrait) lack examples.SoftDeletable + Timestampable) be validated?createdAt fields).isPublished fields).EntityIdTrait, EntityNameTrait).| Component | Compatibility Notes |
|---|---|
| Symfony | 6.4+ required for 3.x. Downgrade to 2.x for 5.4–6.x support. |
| PHP | 8.2+ for 3.x; 8.0.2+ for 2.x. Polyfill enables 8.1–8.2 enum usage. |
| Doctrine | Assumes ORM; SoftDeletable requires deletedAt column. |
| EasyAdmin | Traits enhance EasyAdmin CRUD but don’t replace customizations (e.g., form fields). |
| Testing | No built-in test utilities; rely on PHPUnit/Pest for trait validation. |
EntityIdTrait, EntityTimestampableTrait, and EntitySoftDeletableTrait for 80% of entities.EntityStatusTrait or EntityPublishableTrait for niche use cases (e.g., content management).createdAt/updatedAt fields).SoftDeletable in non-deletable models).Product entities need soft deletes").SoftDeletableInterface) to explicitly declare trait usage.getSlug()).OrderItem) if unused fields (e.g., deletedAt) add storage costs.| Risk | Impact | Mitigation Strategy |
|---|---|---|
| Trait Conflict | Broken entity methods. | Use parent:: explicitly; test conflicts. |
| EasyAdmin Incompatibility | Bundle breaks with EasyAdmin. | Pin to tested versions; fork if needed. |
| Enum Polyfill Bug | Runtime errors in enums. | Test polyfill with target PHP version. |
| Soft Delete Leak | deletedAt not respected. |
Add database-level checks (e.g., triggers). |
| Slug Generation Issues | Duplicate or invalid slugs. | Customize getSlug() in child classes. |
EntityStatusTrait for X use cases").SoftDeletable with Timestampable without testing").deletedAt).How can I help you explore Laravel packages today?