gordinskiy/doctrine-fluent-mapping-bundle

laravel-doctrine 的 Fluent Mapping Driver 的 Symfony Bundle

v0.0.3 2023-05-07 18:13 UTC

README

Latest Stable Version Run Tests codecov License

Symfony Bundle 为 laravel-doctrine/fluent 提供 Doctrine ORM 的替代 PHP Mapping Driver。
作为 doctrine/DoctrineBundle 的扩展来运行。

工作原理

Doctrine 提供了实现自定义映射驱动的能力(文档)。
Fluent Mapping Driver - 由 laravel-doctrine/orm 的作者实现的 Doctrine 映射驱动(文档)。

允许您以面向对象的方式管理映射,将实体与映射配置分离,无需使用 XML 或 YAML 等配置文件。

尽管名称包含供应商名称,但此包不包含 Laravel 框架或其组件的任何依赖。

DoctrineBundle - 提供 Doctrine 项目与 Symfony 框架集成的 Symfony Bundle(文档)。

DoctrineFluentMappingBundle 配置 Fluent Mapping Driver 并将其注册为 DoctrineBundle 的默认映射驱动,通过替换 doctrine.orm.default_metadata_driver 的定义。

安装

在终端运行此命令
composer require gordinskiy/doctrine-fluent-mapping-bundle

如果您不使用 Symfony Flex,则必须手动在应用程序中启用此 Bundle

// config/bundles.php    
return [  
    ...  
    Gordinskiy\DoctrineFluentMappingBundle\DoctrineFluentMappingBundle::class => ['all' => true],  
];

配置

创建 config/packages/doctrine_fluent.yaml 文件并在此文件中列出您的实体映射

doctrine_fluent:
    mappings:
        - Infrastructure\Doctrine\Mappings\UserMapping
        - Infrastructure\Doctrine\Mappings\RoleMapping
        - Infrastructure\Doctrine\Mappings\AccountMapping

按目录列表配置

您也可以通过目录列表来配置映射

doctrine_fluent:
    mappings_paths:
        - src/Context/Infrastructure/Doctrine/Mappings
        - src/SomeAnotherContext/Infrastructure/Doctrine/Mappings
        - src/ActivityLog/Infrastructure/Doctrine/Mappings
        - src/OneMoreContext/Infrastructure/Doctrine/Mappings

您可以使用绝对路径或相对于项目根目录的路径。
这些目录中所有实现 Mapping 接口的所有类将被自动注册为映射。