gpt4 book ai didi

Symfony,实体与存储库

转载 作者:行者123 更新时间:2023-12-04 17:44:59 25 4
gpt4 key购买 nike

我是Symfony的新手,我来自一个MVC框架,那里只有一个模型类,但据我所知,在Symfony中,我们有2个(实体存储库)

因此,我不确定何时将方法放入Entity类中以及何时将其放入存储库中...

例如:

$user->logLogin()

哪个将用户登录名(时间戳,ip,国家/地区,用户代理等)记录到log_logins表中,并从登录事件监听器调用它,该在哪里去? (由于不需要处理该表上的数据,因此我不会创建UserLogins实体,这只是一些只读信息)

最佳答案

这可能不会立即显现出来,但是在Symfony中,您可以通过服务来做事。登录方法既不属于实体也不属于存储库。

总体思路如下:

  • 实体:数据结构。几乎没有一种不是访问者的有意义的方法。
  • 存储库:与数据库交互的唯一部分。在大多数情况下,您使用默认查询,但如果您有一些特殊查询,则需要使用默认查询。业务逻辑也不应该在这里。
  • 服务:业务逻辑所在的位置。有很多。使它们使用其他服务和存储库

  • 典型的 Controller 调用一些服务,通常不直接接触存储库(或Doctrine)。

    这种结构在许多示例中并不明显,这些示例出于尽可能简单和简短的目的而切掉了其中的一些层。

    注意:Symfony具有丰富的登录系统,该系统已经连接到其多个组件,您可能会在不重新实现一个新组件的情况下使用它。我建议看看。

    关于Symfony,实体与存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37706133/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com