Giter Club home page Giter Club logo

doctrine-mapping's Introduction

Doctrine Mapping

PHP Doctrine Code Coverage License

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: 'cms_users_seq'),
    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'),
)->withAssociations(
    OneToOne::of(property: 'address', inversedBy: 'user', cascade: [Cascade::Remove])
        ->withJoinColumn(name: 'address_id', referencedColumnName: 'id', onDelete: 'CASCADE', onUpdate: 'CASCADE'),
    OneToMany::of(property: 'phonenumbers', targetEntity: Phonenumber::class, mappedBy: 'user', cascade: [Cascade::Persist]),
    ManyToMany::of(property: 'groups', targetEntity: Group::class, cascade: [Cascade::All])
        ->withJoinTable(name: 'cms_user_groups')
        ->withJoinColumn(name: 'user_id', referencedColumnName: 'id', nullable: true, unique: false)
        ->withInverseJoinColumn(name: 'group_id', referencedColumnName: 'id', columnDefinition: 'INT NULL'),
)->withIndexes(
    Index::of(fields: 'name', name: 'name_idx'),
    Index::of(columns: 'user_email'),
)->withUniqueConstraints(
    UniqueConstraint::of(columns: ['name', 'user_email'], name: 'search_idx'),
);

Supported Attributes

Currently under development.

doctrine-mapping's People

Contributors

samuelmaudo avatar hereldar avatar

Watchers

 avatar

Forkers

samuelmaudo

doctrine-mapping's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.