Download the PHP package coolms/taxonomy-doctrine without Composer
On this page you can find all versions of the php package coolms/taxonomy-doctrine. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download coolms/taxonomy-doctrine
More information about coolms/taxonomy-doctrine
Files in coolms/taxonomy-doctrine
Package taxonomy-doctrine
Short Description Doctrine mapping for the taxonomy entities, kept out of the domain.
License MIT
Informations about the package taxonomy-doctrine
coolms/taxonomy-doctrine
The Doctrine half of the taxonomy family: XML mapping for the two entities, and the repository implementations behind the domain's contracts.
Why the mapping is XML
coolms/taxonomy must not import the ORM, so the mapping cannot live beside the
entities. It ships here instead, as src/mapping/*.orm.xml, and a consuming
application points Doctrine at it:
⚠️ is_bundle must be false. With it true, dir resolves against the
bundle directory rather than the path you wrote, and the failure is a
non-existent-directory error at cache build - after the autoloader has happily
reported every class as loadable. Loading is not mapping.
coolms/taxonomy-bundle does this for you.
What the mapping declares, and what it does not
It declares each entity's own columns and associations. id, label,
createdAt, updatedAt and accessedAt are deliberately absent: they come
from IdentifierProviderTrait, LabelProviderTrait and TimestampableTrait,
whose CoolMS\Core\Mapping attributes TraitMappingDriver translates earlier in
the driver chain.
⚠️ Do not re-declare a trait column here. The trait is its single source of truth, and a second declaration makes a trait-level change a silent per-entity divergence. In the sibling field package that mistake dropped a column default and surfaced as one line of schema drift.
If you add an entity under CoolMS\Taxonomy\Entity with no matching
.orm.xml, the driver simply does not map it and nothing reports it - the
class just never becomes an entity. Add the mapping in the same change as the
class.
The discriminator map names only the parent
TaxonomyNode.orm.xml maps taxonomy_node to TaxonomyNode and nothing else.
Subclasses register themselves through #[DiscriminatorValue]; see
coolms/taxonomy. Adding a consumer's class to this file makes the package
unpublishable.
Repositories
Repository\TaxonomyNodeRepository and Repository\TaxonomyTreeRepository
extend CoolMS\Core\Doctrine\Repository\DoctrineRepository and implement the
domain interfaces. They are not auto-discovered by a consuming application's
service scan - coolms/taxonomy-bundle registers and aliases them.
Requires
coolms/core, coolms/core-doctrine, coolms/entity, coolms/taxonomy,
coolms/rql, coolms/rql-doctrine (^1.0.1 - the namespace moved inside
^1.0), doctrine/orm, doctrine/persistence,
symfony/dependency-injection.
All versions of taxonomy-doctrine with dependencies
coolms/core-doctrine Version ^2.0
coolms/entity Version ^2.0.0-alpha3
coolms/rql Version ^1.0
coolms/rql-doctrine Version ^1.0.1
coolms/taxonomy Version ^2.0
doctrine/orm Version ^3.3
doctrine/persistence Version ^4.0
php Version ^8.5
symfony/dependency-injection Version ^8.0