PHPackages                             arus/doctrine-bridge - 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. [Database &amp; ORM](/categories/database)
4. /
5. arus/doctrine-bridge

ActiveLibrary[Database &amp; ORM](/categories/database)

arus/doctrine-bridge
====================

Arus // Doctrine Bridge for PHP 7.2+ (incl. PHP 8) based on PHP-DI

v1.18.0(5y ago)09552[2 issues](https://github.com/autorusltd/doctrine-bridge/issues)MITPHPPHP ^7.2|^8.0

Since Jan 27Pushed 4y ago1 watchersCompare

[ Source](https://github.com/autorusltd/doctrine-bridge)[ Packagist](https://packagist.org/packages/arus/doctrine-bridge)[ Docs](https://github.com/autorusltd/doctrine-bridge)[ RSS](/packages/arus-doctrine-bridge/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (10)Dependencies (11)Versions (30)Used By (0)

Doctrine Bridge for PHP 7.2+ (incl. PHP 8) based on PHP-DI
----------------------------------------------------------

[](#doctrine-bridge-for-php-72-incl-php-8-based-on-php-di)

[![Build Status](https://camo.githubusercontent.com/590ba6eeeb808676cf3061d3bb08281a3a666baecb3e9086efb91dad0151ada6/68747470733a2f2f636972636c6563692e636f6d2f67682f6175746f7275736c74642f646f637472696e652d6272696467652e7376673f7374796c653d736869656c64)](https://circleci.com/gh/autorusltd/doctrine-bridge)[![Code Coverage](https://camo.githubusercontent.com/0bbb6a2fee8da47254831c63c0dbe34a29d054505d22f828ea34a01b2b3a8ee4/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6175746f7275736c74642f646f637472696e652d6272696467652f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/autorusltd/doctrine-bridge/?branch=master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/87986a5144fa6408b1b813c869ff52a25530732070eeecfefabf26f548d55171/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6175746f7275736c74642f646f637472696e652d6272696467652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/autorusltd/doctrine-bridge/?branch=master)[![Total Downloads](https://camo.githubusercontent.com/b43118e74d2c6cb19e273d7134beca931745d71b8b371870cc80e26b78549afd/68747470733a2f2f706f7365722e707567782e6f72672f617275732f646f637472696e652d6272696467652f646f776e6c6f616473)](https://packagist.org/packages/arus/doctrine-bridge)[![Latest Stable Version](https://camo.githubusercontent.com/a6e6b0f93f9f02879fc8e281a64bb119082b41a0e903d095f0a37691bc827acf/68747470733a2f2f706f7365722e707567782e6f72672f617275732f646f637472696e652d6272696467652f762f737461626c65)](https://packagist.org/packages/arus/doctrine-bridge)[![License](https://camo.githubusercontent.com/97d0c9d395d2a2f8dfbd91c4c6f554938da60f0da6ab00a88572e54feda4ec49/68747470733a2f2f706f7365722e707567782e6f72672f617275732f646f637472696e652d6272696467652f6c6963656e7365)](https://packagist.org/packages/arus/doctrine-bridge)

---

Installation
------------

[](#installation)

```
composer require 'arus/doctrine-bridge:^1.18'
```

Examples of using
-----------------

[](#examples-of-using)

The examples use [PHP-DI](http://php-di.org/)

### Doctrine Manager Registry

[](#doctrine-manager-registry)

##### The DI definitions

[](#the-di-definitions)

```
declare(strict_types=1);

use Arus\Doctrine\Bridge\ManagerRegistry;
use Doctrine\Common\Cache\ArrayCache;

use function DI\autowire;
use function DI\create;
use function DI\env;
use function DI\get;
use function DI\string;

return [
    'doctrine' => autowire(ManagerRegistry::class),

    'doctrine.configuration' => [
        'default' => [
            'connection' => get('doctrine.configuration.default.connection'),
            'metadata_sources' => get('doctrine.configuration.default.metadata_sources'),
            'metadata_cache' => get('doctrine.configuration.default.metadata_cache'),
            'query_cache' => get('doctrine.configuration.default.query_cache'),
            'result_cache' => get('doctrine.configuration.default.result_cache'),
            'proxy_dir' => get('doctrine.configuration.default.proxy_dir'),
            'proxy_namespace' => get('doctrine.configuration.default.proxy_namespace'),
            'proxy_auto_generate' => get('doctrine.configuration.default.proxy_auto_generate'),
            'sql_logger' => get('doctrine.configuration.default.sql_logger'),
        ],
    ],

    'doctrine.configuration.default.connection' => [
        'url' => env('DATABASE_URL', 'mysql://user:password@127.0.0.1:3306/acme'),
    ],

    'doctrine.configuration.default.metadata_sources' => [string('{app.root}/src/Entity')],
    'doctrine.configuration.default.metadata_cache' => get('doctrine.configuration.default.default_cache'),
    'doctrine.configuration.default.query_cache' => get('doctrine.configuration.default.default_cache'),
    'doctrine.configuration.default.result_cache' => get('doctrine.configuration.default.default_cache'),
    'doctrine.configuration.default.default_cache' => create(ArrayCache::class),
    'doctrine.configuration.default.proxy_dir' => string('{app.root}/database/proxies'),
    'doctrine.configuration.default.proxy_namespace' => 'DoctrineProxies',
    'doctrine.configuration.default.proxy_auto_generate' => true,
    'doctrine.configuration.default.sql_logger' => null,
];
```

### Doctrine Migrations

[](#doctrine-migrations)

##### The DI definitions

[](#the-di-definitions-1)

```
declare(strict_types=1);

use function DI\get;
use function DI\string;

return [
    'migrations.configuration' => [
        'name' => get('migrations.configuration.name'),
        'table_name' => get('migrations.configuration.table_name'),
        'column_name' => get('migrations.configuration.column_name'),
        'column_length' => get('migrations.configuration.column_length'),
        'executed_at_column_name' => get('migrations.configuration.executed_at_column_name'),
        'directory' => get('migrations.configuration.directory'),
        'namespace' => get('migrations.configuration.namespace'),
        'organize_by_year' => get('migrations.configuration.organize_by_year'),
        'organize_by_year_and_month' => get('migrations.configuration.organize_by_year_and_month'),
        'custom_template' => get('migrations.configuration.custom_template'),
        'is_dry_run' => get('migrations.configuration.is_dry_run'),
        'all_or_nothing' => get('migrations.configuration.all_or_nothing'),
        'check_database_platform' => get('migrations.configuration.check_database_platform'),
    ],

    'migrations.configuration.name' => null,
    'migrations.configuration.table_name' => null,
    'migrations.configuration.column_name' => null,
    'migrations.configuration.column_length' => null,
    'migrations.configuration.executed_at_column_name' => null,
    'migrations.configuration.directory' => string('{app.root}/database/migrations'),
    'migrations.configuration.namespace' => 'DoctrineMigrations',
    'migrations.configuration.organize_by_year' => null,
    'migrations.configuration.organize_by_year_and_month' => null,
    'migrations.configuration.custom_template' => null,
    'migrations.configuration.is_dry_run' => null,
    'migrations.configuration.all_or_nothing' => null,
    'migrations.configuration.check_database_platform' => null,
];
```

### Doctrine Commands Provider

[](#doctrine-commands-provider)

##### The DI definitions

[](#the-di-definitions-2)

```
declare(strict_types=1);

use Arus\Doctrine\Bridge\CommandsProvider;

use function DI\decorate;

return [
    'commands' => decorate(function ($previous, $container) {
        $provider = new CommandsProvider($container);

        return array_merge($previous, $provider->getCommands());
    }),
];
```

##### or you can get all the commands through the manager

[](#or-you-can-get-all-the-commands-through-the-manager)

```
$application->addCommands(
    $container->get('doctrine')->getCommands()
);
```

### Unique Entity Validator

[](#unique-entity-validator)

##### The DI definitions

[](#the-di-definitions-3)

```
declare(strict_types=1);

use Symfony\Component\Validator\ContainerConstraintValidatorFactory;
use Symfony\Component\Validator\Validation;

use function DI\factory;

return [
    'validator' => factory(function ($container) {
        return Validation::createValidatorBuilder()
            ->enableAnnotationMapping()
            ->setConstraintValidatorFactory(
                new ContainerConstraintValidatorFactory($container)
            )
        ->getValidator();
    }),
];
```

##### Usage example

[](#usage-example)

```
declare(strict_types=1);

namespace App\Entity;

/**
 * Import classes
 */
use Arus\Doctrine\Bridge\Validator\Constraint\UniqueEntity;

/**
 * @UniqueEntity({"foo"})
 *
 * @UniqueEntity({"bar", "baz"})
 *
 * @UniqueEntity({"qux"}, atPath="customPropertyPath")
 *
 * @UniqueEntity({"quux"}, message="The value {{ value }} already exists!")
 */
class Entry
{
    // some code...
}
```

### Doctrine Array Hydrator

[](#doctrine-array-hydrator)

```
$hydrator = $container->get('doctrine')->getHydrator();

$hydrator->hydrate(Entity::class, [
    'name' => 'foo bar',
]);
```

-

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity72

Established project with proven stability

 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 ~19 days

Recently: every ~49 days

Total

21

Last Release

1924d ago

PHP version history (2 changes)v1.0.0PHP ^7.2

v1.16.0PHP ^7.2|^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2872934?v=4)[Anatolii Nekhai](/maintainers/fenric)[@fenric](https://github.com/fenric)

---

Top Contributors

[![fenric](https://avatars.githubusercontent.com/u/2872934?v=4)](https://github.com/fenric "fenric (80 commits)")

---

Tags

di-definitionsdoctrinedoctrine-bridgephpphp-diphp7php8unique-entity-validatordoctrinePHP7php8fenricarus

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/arus-doctrine-bridge/health.svg)

```
[![Health](https://phpackages.com/badges/arus-doctrine-bridge/health.svg)](https://phpackages.com/packages/arus-doctrine-bridge)
```

###  Alternatives

[symfony/property-info

Extracts information about PHP class' properties using metadata of popular sources

2.2k256.7M854](/packages/symfony-property-info)[knplabs/doctrine-behaviors

Doctrine Behavior Traits

92212.7M64](/packages/knplabs-doctrine-behaviors)[andanteproject/soft-deletable-bundle

A Symfony Bundle to handle soft deletable with Doctrine Entities

1028.3k](/packages/andanteproject-soft-deletable-bundle)

PHPackages © 2026

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