DDD Symfony / Doctrine库-安全用户需要UserInterface



标题的基本意思是:

tldr;我的用户模型,它不应该与应用程序有任何关系层,需要UserInterface(一个Symfony类)为Symfony安全工作。

我的设置如下:

app/
...
src/
vendor/

"app"包含使用所有"域"的所有纯Symfony代码。相关代码来自"src">

"src"包含具有如下结构的域:

DomainName/Application
DomainName/Domain
DomainName/Infrastructure

"User"在DomainName/Domain中定义的模型(普通的旧php对象)不应该实现/扩展来自应用层的代码。但我不能让它工作。我已经考虑过扩展和提供"不同的"服务。用户模型(来自"app")和Doctrine的mapappedsuperclasses,但我的模型有太多关系,无法工作。

这种设置是可能的还是我应该接受这是唯一的方法?(

NB:我希望你能说清楚我想要达到的目标,这很难解释。

完整的示例布局:

app/
config/security.yaml
security:
...
providers:
app_user_provider:
entity:
class: DomainNameDomainUser
src/DomainName/Domain/User.php
- Nothing special, id, uuid, etc
src/DomainName/Domain/Repository/UserRepository.php
- This is an interface, because the domain does not contain the implementation
src/DomainName/Infrastructure/Persistence/Doctrine/Dbal/UserDbalRepository.php
- This implements the UserRepository, and the UserRepository will always be injected within "app"
src/DomainName/Infrastructure/Persistence/Doctrine/ORM/User.orm.yml
- This is the mapping ORM file for the Entity

一个有点旧的话题,但对于其他人谁将面临类似的问题,我有完全相同的情况下,在我当前的项目,我通过创建域用户模型和基础设施我已经创建了SecurityUser模型解决了这个问题,与我的用户模型依赖于域,所以我能够使用我的域UserRepository eg。在自定义用户提供商中,我从中返回SecurityUser,并从存储库中获取注入域用户。

相关内容

  • 没有找到相关文章

最新更新