arus/doctrine-bridge
Composer 安装命令:
composer require arus/doctrine-bridge
包简介
Arus // Doctrine Bridge for PHP 7.2+ (incl. PHP 8) based on PHP-DI
README 文档
README
Installation
composer require 'arus/doctrine-bridge:^1.18'
Examples of using
The examples use PHP-DI
Doctrine Manager Registry
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
The DI definitions
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
The DI definitions
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
$application->addCommands( $container->get('doctrine')->getCommands() );
Unique Entity Validator
The DI definitions
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
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
$hydrator = $container->get('doctrine')->getHydrator(); $hydrator->hydrate(Entity::class, [ 'name' => 'foo bar', ]);
arus/doctrine-bridge 适用场景与选型建议
arus/doctrine-bridge 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 955 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 01 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「doctrine」 「PHP7」 「fenric」 「arus」 「php8」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 arus/doctrine-bridge 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 arus/doctrine-bridge 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 arus/doctrine-bridge 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
php7ify is a project that brings new php7 classes and exceptions to php 5.x.
A powerful solution as the foundation of your project.
Creates an XML file for a Single Euro Payments Area (SEPA) Credit Transfer.
Slugger for PHP 7.1+ based on ICU
A simple cURL client implementing PSR-18.
Arus // Monolog Telegram Handler for PHP 7.2+ (incl. PHP 8)
统计信息
- 总下载量: 955
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-01-27