An alternative Doctrine object mapper that allows to configure entities in separate PHP files.
<?php
use ...
return Entity::of(
class: User::class,
)->withTable(
name: 'cms_users',
schema: 'main',
)->withFields(
Id::of(property: 'id', type: 'integer')->withSequenceGenerator(sequenceName: 'sequence'),
Field::of(property: 'name', type: 'string')->withColumn(length: 50, nullable: true, unique: true),
Field::of(property: 'email', type: 'string')->withColumn(name: 'user_email', definition: 'CHAR(32) NOT NULL'),
)->withIndexes(
Index::of(fields: 'name', name: 'name_idx'),
Index::of(columns: 'user_email'),
)->withUniqueConstraints(
UniqueConstraint::of(columns: ['name', 'user_email'], name: 'search_idx'),
);
Currently under development.