Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir/Phoenix 1.3拆分上下文_Elixir_Phoenix Framework - Fatal编程技术网

Elixir/Phoenix 1.3拆分上下文

Elixir/Phoenix 1.3拆分上下文,elixir,phoenix-framework,Elixir,Phoenix Framework,在Phoenix 1.3中,建议将所有业务逻辑放在上下文中,但一个上下文可以处理许多实体(我不知道正确的词,因为Phoenix 1.3中不再存在“model”),而且它增长非常快。将上下文拆分为多个文件的正确方法是什么 编辑 我有帐户上下文和两个实体:用户和凭据。即使有这两个实体,上下文看起来也有点复杂。我必须滚动浏览用户的功能才能访问凭证的功能。现在这并不是一个真正的问题,但我认为在一个上下文中可以有两个以上的实体,然后它可以是非常巨大的。还是我错了 这个例子来自phoenix的hexdocs

在Phoenix 1.3中,建议将所有业务逻辑放在上下文中,但一个上下文可以处理许多实体(我不知道正确的词,因为Phoenix 1.3中不再存在“model”),而且它增长非常快。将上下文拆分为多个文件的正确方法是什么

编辑

我有帐户上下文和两个实体:用户和凭据。即使有这两个实体,上下文看起来也有点复杂。我必须滚动浏览用户的功能才能访问凭证的功能。现在这并不是一个真正的问题,但我认为在一个上下文中可以有两个以上的实体,然后它可以是非常巨大的。还是我错了


这个例子来自phoenix的hexdocs.pm,这是一个非常重要的问题,但实际上,如何组织代码完全取决于您自己。Phoenix不会影响您的任何风格,即使上下文只是一个建议,用于设计代码

现在,您的结构如下所示:

lib
  > accounts
    > accounts.ex
      user.ex
      credentials.ex
因此,您可以将
凭证
用户
拆分为完全独立的上下文,这可能不是最好的主意,因为它们与当前
帐户
上下文相关,或者尝试从将其作为子上下文引入中获益。很可能您会与用户和凭据发生名称冲突。这仍然是可行的

凭证
可能会成为
身份验证
上下文的一部分,如果您希望以这种方式设计的话。你可以选择几个方法来解决这个问题

假设您希望保持当前的结构,但引入子上下文,但在最后,您仍然希望通过主上下文调用它们,您可以在这里使用


最好的建议是考虑下一步你的代码会发生什么,并尝试以逻辑的方式把事情分类在一起。<代码>证书> /代码>只针对用户,但它们是授权用户的方式之一。因此,您可以将它们分组为模式和授权的子文本或帐户上下文。

您可能需要在多个上下文之间拆分实体。“你能告诉我们你是什么实体吗?”泰勒,我编辑了这个问题