{"id":17122251,"url":"https://github.com/autorusltd/doctrine-bridge","last_synced_at":"2026-03-11T13:38:52.223Z","repository":{"id":54630950,"uuid":"236161185","full_name":"autorusltd/doctrine-bridge","owner":"autorusltd","description":"Doctrine Bridge for PHP 7.2+ (incl. PHP 8) based on PHP-DI","archived":false,"fork":false,"pushed_at":"2021-10-27T14:05:55.000Z","size":66,"stargazers_count":0,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-28T03:57:36.870Z","etag":null,"topics":["di-definitions","doctrine","doctrine-bridge","php","php-di","php7","php8","unique-entity-validator"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autorusltd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-25T11:28:18.000Z","updated_at":"2021-02-07T00:26:25.000Z","dependencies_parsed_at":"2022-08-13T22:01:12.549Z","dependency_job_id":null,"html_url":"https://github.com/autorusltd/doctrine-bridge","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/autorusltd/doctrine-bridge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autorusltd%2Fdoctrine-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autorusltd%2Fdoctrine-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autorusltd%2Fdoctrine-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autorusltd%2Fdoctrine-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autorusltd","download_url":"https://codeload.github.com/autorusltd/doctrine-bridge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autorusltd%2Fdoctrine-bridge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30382673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T12:49:11.341Z","status":"ssl_error","status_checked_at":"2026-03-11T12:46:41.342Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["di-definitions","doctrine","doctrine-bridge","php","php-di","php7","php8","unique-entity-validator"],"created_at":"2024-10-14T18:07:05.402Z","updated_at":"2026-03-11T13:38:52.200Z","avatar_url":"https://github.com/autorusltd.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Doctrine Bridge for PHP 7.2+ (incl. PHP 8) based on PHP-DI\n\n[![Build Status](https://circleci.com/gh/autorusltd/doctrine-bridge.svg?style=shield)](https://circleci.com/gh/autorusltd/doctrine-bridge)\n[![Code Coverage](https://scrutinizer-ci.com/g/autorusltd/doctrine-bridge/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/autorusltd/doctrine-bridge/?branch=master)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/autorusltd/doctrine-bridge/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/autorusltd/doctrine-bridge/?branch=master)\n[![Total Downloads](https://poser.pugx.org/arus/doctrine-bridge/downloads)](https://packagist.org/packages/arus/doctrine-bridge)\n[![Latest Stable Version](https://poser.pugx.org/arus/doctrine-bridge/v/stable)](https://packagist.org/packages/arus/doctrine-bridge)\n[![License](https://poser.pugx.org/arus/doctrine-bridge/license)](https://packagist.org/packages/arus/doctrine-bridge)\n\n---\n\n## Installation\n\n```bash\ncomposer require 'arus/doctrine-bridge:^1.18'\n```\n\n## Examples of using\n\nThe examples use [PHP-DI](http://php-di.org/)\n\n### Doctrine Manager Registry\n\n##### The DI definitions\n\n```php\ndeclare(strict_types=1);\n\nuse Arus\\Doctrine\\Bridge\\ManagerRegistry;\nuse Doctrine\\Common\\Cache\\ArrayCache;\n\nuse function DI\\autowire;\nuse function DI\\create;\nuse function DI\\env;\nuse function DI\\get;\nuse function DI\\string;\n\nreturn [\n    'doctrine' =\u003e autowire(ManagerRegistry::class),\n\n    'doctrine.configuration' =\u003e [\n        'default' =\u003e [\n            'connection' =\u003e get('doctrine.configuration.default.connection'),\n            'metadata_sources' =\u003e get('doctrine.configuration.default.metadata_sources'),\n            'metadata_cache' =\u003e get('doctrine.configuration.default.metadata_cache'),\n            'query_cache' =\u003e get('doctrine.configuration.default.query_cache'),\n            'result_cache' =\u003e get('doctrine.configuration.default.result_cache'),\n            'proxy_dir' =\u003e get('doctrine.configuration.default.proxy_dir'),\n            'proxy_namespace' =\u003e get('doctrine.configuration.default.proxy_namespace'),\n            'proxy_auto_generate' =\u003e get('doctrine.configuration.default.proxy_auto_generate'),\n            'sql_logger' =\u003e get('doctrine.configuration.default.sql_logger'),\n        ],\n    ],\n\n    'doctrine.configuration.default.connection' =\u003e [\n        'url' =\u003e env('DATABASE_URL', 'mysql://user:password@127.0.0.1:3306/acme'),\n    ],\n\n    'doctrine.configuration.default.metadata_sources' =\u003e [string('{app.root}/src/Entity')],\n    'doctrine.configuration.default.metadata_cache' =\u003e get('doctrine.configuration.default.default_cache'),\n    'doctrine.configuration.default.query_cache' =\u003e get('doctrine.configuration.default.default_cache'),\n    'doctrine.configuration.default.result_cache' =\u003e get('doctrine.configuration.default.default_cache'),\n    'doctrine.configuration.default.default_cache' =\u003e create(ArrayCache::class),\n    'doctrine.configuration.default.proxy_dir' =\u003e string('{app.root}/database/proxies'),\n    'doctrine.configuration.default.proxy_namespace' =\u003e 'DoctrineProxies',\n    'doctrine.configuration.default.proxy_auto_generate' =\u003e true,\n    'doctrine.configuration.default.sql_logger' =\u003e null,\n];\n```\n\n### Doctrine Migrations\n\n##### The DI definitions\n\n```php\ndeclare(strict_types=1);\n\nuse function DI\\get;\nuse function DI\\string;\n\nreturn [\n    'migrations.configuration' =\u003e [\n        'name' =\u003e get('migrations.configuration.name'),\n        'table_name' =\u003e get('migrations.configuration.table_name'),\n        'column_name' =\u003e get('migrations.configuration.column_name'),\n        'column_length' =\u003e get('migrations.configuration.column_length'),\n        'executed_at_column_name' =\u003e get('migrations.configuration.executed_at_column_name'),\n        'directory' =\u003e get('migrations.configuration.directory'),\n        'namespace' =\u003e get('migrations.configuration.namespace'),\n        'organize_by_year' =\u003e get('migrations.configuration.organize_by_year'),\n        'organize_by_year_and_month' =\u003e get('migrations.configuration.organize_by_year_and_month'),\n        'custom_template' =\u003e get('migrations.configuration.custom_template'),\n        'is_dry_run' =\u003e get('migrations.configuration.is_dry_run'),\n        'all_or_nothing' =\u003e get('migrations.configuration.all_or_nothing'),\n        'check_database_platform' =\u003e get('migrations.configuration.check_database_platform'),\n    ],\n\n    'migrations.configuration.name' =\u003e null,\n    'migrations.configuration.table_name' =\u003e null,\n    'migrations.configuration.column_name' =\u003e null,\n    'migrations.configuration.column_length' =\u003e null,\n    'migrations.configuration.executed_at_column_name' =\u003e null,\n    'migrations.configuration.directory' =\u003e string('{app.root}/database/migrations'),\n    'migrations.configuration.namespace' =\u003e 'DoctrineMigrations',\n    'migrations.configuration.organize_by_year' =\u003e null,\n    'migrations.configuration.organize_by_year_and_month' =\u003e null,\n    'migrations.configuration.custom_template' =\u003e null,\n    'migrations.configuration.is_dry_run' =\u003e null,\n    'migrations.configuration.all_or_nothing' =\u003e null,\n    'migrations.configuration.check_database_platform' =\u003e null,\n];\n```\n\n### Doctrine Commands Provider\n\n##### The DI definitions\n\n```php\ndeclare(strict_types=1);\n\nuse Arus\\Doctrine\\Bridge\\CommandsProvider;\n\nuse function DI\\decorate;\n\nreturn [\n    'commands' =\u003e decorate(function ($previous, $container) {\n        $provider = new CommandsProvider($container);\n\n        return array_merge($previous, $provider-\u003egetCommands());\n    }),\n];\n```\n\n##### or you can get all the commands through the manager\n\n```php\n$application-\u003eaddCommands(\n    $container-\u003eget('doctrine')-\u003egetCommands()\n);\n```\n\n### Unique Entity Validator\n\n##### The DI definitions\n\n```php\ndeclare(strict_types=1);\n\nuse Symfony\\Component\\Validator\\ContainerConstraintValidatorFactory;\nuse Symfony\\Component\\Validator\\Validation;\n\nuse function DI\\factory;\n\nreturn [\n    'validator' =\u003e factory(function ($container) {\n        return Validation::createValidatorBuilder()\n            -\u003eenableAnnotationMapping()\n            -\u003esetConstraintValidatorFactory(\n                new ContainerConstraintValidatorFactory($container)\n            )\n        -\u003egetValidator();\n    }),\n];\n```\n\n##### Usage example\n\n```php\ndeclare(strict_types=1);\n\nnamespace App\\Entity;\n\n/**\n * Import classes\n */\nuse Arus\\Doctrine\\Bridge\\Validator\\Constraint\\UniqueEntity;\n\n/**\n * @UniqueEntity({\"foo\"})\n *\n * @UniqueEntity({\"bar\", \"baz\"})\n *\n * @UniqueEntity({\"qux\"}, atPath=\"customPropertyPath\")\n *\n * @UniqueEntity({\"quux\"}, message=\"The value {{ value }} already exists!\")\n */\nclass Entry\n{\n    // some code...\n}\n```\n\n### Doctrine Array Hydrator\n\n```php\n$hydrator = $container-\u003eget('doctrine')-\u003egetHydrator();\n\n$hydrator-\u003ehydrate(Entity::class, [\n    'name' =\u003e 'foo bar',\n]);\n```\n\n* https://github.com/pmill/doctrine-array-hydrator\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautorusltd%2Fdoctrine-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautorusltd%2Fdoctrine-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautorusltd%2Fdoctrine-bridge/lists"}