laravel-doctrine / fluent by eigan

A fluent PHP mapping driver for Doctrine2.
278,883
44
8
Package Data
Maintainer Username: eigan
Maintainer Contact: guiwoda@gmail.com (Guido Contreras Woda)
Package Create Date: 2015-09-18
Package Last Update: 2024-01-10
Home Page: http://www.laraveldoctrine.org/docs/current/fluent
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 15:19:22
Package Statistics
Total Downloads: 278,883
Monthly Downloads: 3,997
Daily Downloads: 199
Total Stars: 44
Total Watchers: 8
Total Forks: 20
Total Open Issues: 9

Fluent Mapping Driver

GitHub release Packagist License

Travis Coverage Status StyleCI Scrutinizer SensioLabsInsight

A fluent mapping driver for Doctrine2

composer require laravel-doctrine/fluent

This mapping driver allows you to manage your mappings in an Object Oriented approach, separating your entities from your mapping configuration without the need for configuration files like XML or YAML. This is done by implementing the LaravelDoctrine\Fluent\Mapping interface, or extending the abstract classes provided with this package for an easier use: LaravelDoctrine\Fluent\EntityMapping, LaravelDoctrine\Fluent\EmbeddableMapping or MappedSuperClassMapping.

This package provides a fluent Builder over Doctrine's ClassMetadataBuilder, aimed at easing usage of Doctrine's mapping concepts in Laravel. The builder adds syntax sugar and implements the same grammar that you might use in Laravel migrations.

class ScientistMapping extends EntityMapping
{
    /**
     * Returns the fully qualified name of the class that this mapper maps.
     *
     * @return string
     */
    public function mapFor()
    {
        return Scientist::class;
    }

    /**
     * Load the object's metadata through the Metadata Builder object.
     *
     * @param Fluent $builder
     */
    public function map(Fluent $builder)
    {
        $builder->increments('id');
        $builder->embed(Name::class, 'name');
 
        $builder->hasMany(Theory::class, 'theories')->ownedBy('scientist');
    }
}