2016-05-26 64 views
2

我想在我的应用程序中为用户认证编写一个插件。正在浏览凤凰插件文档,并且对使用哪种插头,功能或模块有点困惑。功能插件与模块插件

一般来说,两个插头哪个插头哪个更好?

回答

5

有我能想到的,当你想要一个功能插件两种主要用途:

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

大部分的时间,我的插头开始的功能,而我正在开发他们,然后我将它们移到自己的模块中。

模块插件的优点是能够在init/1函数中执行某些登录,稍后将会将该函数传递给call/2函数。

+2

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