PHPackages                             kachnitel/entity-components-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kachnitel/entity-components-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

kachnitel/entity-components-bundle
==================================

Reusable Symfony Live Components for entity management (tags, attachments, comments, inline-edit fields)

0.0.2(1mo ago)0228MITPHPPHP &gt;=8.2CI failing

Since Feb 8Pushed 1mo agoCompare

[ Source](https://github.com/kachnitel/FrdEntityComponentsBundle)[ Packagist](https://packagist.org/packages/kachnitel/entity-components-bundle)[ RSS](/packages/kachnitel-entity-components-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (48)Versions (3)Used By (0)

Kachnitel Entity Components Bundle
==================================

[](#kachnitel-entity-components-bundle)

[![Tests](https://camo.githubusercontent.com/b40788ece9bfb5d480cde7d50902d1e5249a6f05f923ea365b15624a9623ff0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74657374732d3336352532307061737365642d726564)](https://camo.githubusercontent.com/b40788ece9bfb5d480cde7d50902d1e5249a6f05f923ea365b15624a9623ff0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74657374732d3336352532307061737365642d726564)[![Coverage](https://camo.githubusercontent.com/2f5ee35fe21eb16b4707c238639bc4c22854a6bbb25724431b85094c8e53ebd2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d35362532352d726564)](https://camo.githubusercontent.com/2f5ee35fe21eb16b4707c238639bc4c22854a6bbb25724431b85094c8e53ebd2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f7665726167652d35362532352d726564)[![Assertions](https://camo.githubusercontent.com/54c3f5c07a7e7acfccb0eafb886b7a72ea9540b3f068a61858b4a4da68e0975b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f617373657274696f6e732d3632382d626c7565)](https://camo.githubusercontent.com/54c3f5c07a7e7acfccb0eafb886b7a72ea9540b3f068a61858b4a4da68e0975b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f617373657274696f6e732d3632382d626c7565)[![PHPStan](https://camo.githubusercontent.com/21920d796a9d224b5a0d50071acbf8a949823bc2b3cad5be032ec5156bf605a9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d362d627269676874677265656e)](https://camo.githubusercontent.com/21920d796a9d224b5a0d50071acbf8a949823bc2b3cad5be032ec5156bf605a9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d362d627269676874677265656e)[![PHP](https://camo.githubusercontent.com/1bb3592bd684ca1c1b4f1fb2afa0a51c6910cf6068c262ca26299c7264ca775f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d2533453d382e322d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/1bb3592bd684ca1c1b4f1fb2afa0a51c6910cf6068c262ca26299c7264ca775f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d2533453d382e322d3737374242343f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)[![Symfony](https://camo.githubusercontent.com/bca237fded95b94d7947a4231da294710525ceea77da959f84987fa388eb7294/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545362e34253743253545372e30253743253545382e302d3030303030303f6c6f676f3d73796d666f6e79266c6f676f436f6c6f723d7768697465)](https://camo.githubusercontent.com/bca237fded95b94d7947a4231da294710525ceea77da959f84987fa388eb7294/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d253545362e34253743253545372e30253743253545382e302d3030303030303f6c6f676f3d73796d666f6e79266c6f676f436f6c6f723d7768697465)

Reusable Symfony Live Components for entity management: tags, file attachments, comments, relationship dropdowns, and a full set of **inline-edit field components** that work with any Doctrine entity.

Quick Start
-----------

[](#quick-start)

### 1. Install

[](#1-install)

```
composer require kachnitel/entity-components-bundle
```

### 2. Use any component

[](#2-use-any-component)

```
{{# Inline-edit a text field — any entity property with a setter #}}

{{# Tag management #}}

{{# File attachments #}}

{{# Comments #}}

{{# Relationship / enum dropdown #}}

```

---

What's Next?
------------

[](#whats-next)

**Inline-edit any field****Level 1:** Drop in a field component — click ✎ to edit, save, or cancel:

```

```

**Level 2:** Association fields with live search:

```

```

**Level 3:** Add Symfony Validator constraints to the entity — validation runs automatically before flushing:

```
#[Assert\NotBlank]
#[Assert\Length(max: 100)]
private ?string $name = null;
```

**Level 4:** Control who can edit by overriding `EditabilityResolverInterface`:

```
Kachnitel\EntityComponentsBundle\Components\Field\EditabilityResolverInterface:
    alias: App\Field\MyEditabilityResolver
```

**Details:** [Inline-Edit Guide](docs/INLINE_EDIT.md)

**Tag management****Level 1:** Implement `TagInterface` and `TaggableInterface`, drop in the component:

```

```

**Level 2:** Read-only badge display:

```

```

**Level 3:** Colored categories — return a hex color from `getCategoryColor()` on your Tag entity. Text color is flipped automatically for contrast.

**Details:** [Tags Guide](docs/TAGS.md)

**File attachments****Level 1:** Register a `FileHandlerInterface` service, implement `AttachableInterface`, drop in the component:

```

```

**Level 2:** Read-only display, custom collection property:

```
:config="{ readOnly: true, property: 'media' }"
```

**Level 3:** Per-attachment tagging:

```
:config="{ tagClass: 'App\\Entity\\Tag' }"
```

**Details:** [Attachments Guide](docs/ATTACHMENTS.md)

**Comments****Level 1:** Implement `CommentInterface` and `CommentableInterface`, drop in the component:

```

```

**Level 2:** Read-only display, custom collection property:

```
:config="{ readOnly: true, property: 'notes' }"
```

**Level 3:** Limit text length — add a `MAX_TEXT_LENGTH` constant to your Comment entity and the textarea `maxlength` is set automatically.

**Details:** [Comments Guide](docs/COMMENTS.md)

**Relationship / enum dropdown****Level 1:** Works out of the box for any entity relation or backed enum:

```

```

**Level 2:** Access control, placeholder, label:

```
:config="{
    role: 'ROLE_EDITOR',
    placeholder: '— Select Region —',
}"
```

**Level 3:** Filter records or use a custom repository method:

```
:config="{ filter: { active: true } }"
:config="{ repositoryMethod: 'findActive' }"
```

**Details:** [SelectRelationship Guide](docs/SELECT_RELATIONSHIP.md)

---

Components at a glance
----------------------

[](#components-at-a-glance)

ComponentTagDescription`TagManager``K:Entity:TagManager`Colored tag badges with category grouping`AttachmentManager``K:Entity:AttachmentManager`File upload and attachment list`CommentsManager``K:Entity:CommentsManager`Threaded comments with delete confirmation`SelectRelationship``K:Entity:SelectRelationship`Eager dropdown for small option sets and enums`StringField``K:Entity:Field:String`Inline text edit`IntField``K:Entity:Field:Int`Inline integer edit`FloatField``K:Entity:Field:Float`Inline decimal edit`BoolField``K:Entity:Field:Bool`Inline checkbox toggle`DateField``K:Entity:Field:Date`Inline date / datetime / time edit`EnumField``K:Entity:Field:Enum`Inline dropdown for PHP backed enums`RelationshipField``K:Entity:Field:Relationship`Live-search inline editor for ManyToOne / OneToOne`CollectionField``K:Entity:Field:Collection`Live-search inline editor for ManyToMany / OneToManyDocumentation
-------------

[](#documentation)

GuideDescription[Inline-Edit Fields](docs/INLINE_EDIT.md)All field types, validation, editability control, display override[Tags](docs/TAGS.md)TagManager setup, categories, colors[Attachments](docs/ATTACHMENTS.md)AttachmentManager setup, FileHandlerInterface, template blocks[Comments](docs/COMMENTS.md)CommentsManager setup, author attribution, text limits[SelectRelationship](docs/SELECT_RELATIONSHIP.md)Dropdown for relations and enums, access control, filteringRequirements
------------

[](#requirements)

- PHP 8.2+
- Symfony 6.4, 7.x, or 8.x
- Doctrine ORM
- Symfony UX Live Component

License
-------

[](#license)

MIT

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance90

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~47 days

Total

2

Last Release

52d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1206e3a106f8c82c1dd68d4304c951d6979f39e5806de2a7a72724d825f06b38?d=identicon)[kachnitel](/maintainers/kachnitel)

---

Top Contributors

[![kachnitel](https://avatars.githubusercontent.com/u/4067705?v=4)](https://github.com/kachnitel "kachnitel (51 commits)")

---

Tags

symfony-uxtagsattachmentslive componentinline editentity-management

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kachnitel-entity-components-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/kachnitel-entity-components-bundle/health.svg)](https://phpackages.com/packages/kachnitel-entity-components-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k16.7M310](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
