功能插头与模块插头

cod*_*hal 3 phoenix-framework

我想在我的应用程序中编写用于用户身份验证的插件.正在浏览凤凰插件文档,并对使用哪种插件,功能或模块有点困惑.

一般来说,两个插头哪个插头是首选?

Gaz*_*ler 6

当你想要一个功能插件时,我可以想到两个主要用途:

  1. 您需要一个文件本地的插件(控制器,路由器,端点等).如果您希望从多个文件中获取模块插件,则首选模块插件.
  2. 你正在编写一个库,允许您使用功能插件模块中(凤凰城做这行put_layoutscrub_params)

大多数时候,我的插件在开发时会以函数的形式开始,然后我将它们移动到自己的模块中.

模块插件的好处是能够在init/1稍后传递给call/2函数的函数中执行一些登录.

  • 另外,在编译期间可能会调用`init/1`,这意味着它可以提高性能,因为大多数插件在实际工作之前需要配置.使用功能插件,这些配置必须在运行时完成,因此模块插件更适合此场景. (2认同)