2016-08-03 70 views
0

我正在寻找一种方法来构建可以在symfony中捆绑的东西或CakePHP中的插件。例如:在用户模块中,所有控制器,模板和视图都将位于一个文件夹中,以便我可以轻松访问它们。如何将代码封装在模块,捆绑包或插件中?

而且我想创建一个基于功能类似的模块,例如,支付模块,库存模块等

在目前的架构,我可以把所有的控制器一起,所有视图在一起。由于我的项目非常庞大,所以现在它拥有近140个控制器等等,而且对我来说看起来非常混乱。凤凰为模块化代码提供了什么?

+1

有没有干净的方式来做到这一点,因为我知道。还相关:http://stackoverflow.com/questions/38249813/splitting-phoenix-project-into-applications – sobolevn

回答

0

在开始时,请检查link,但我还强烈建议您检查由凤凰的创建者,Elixir的创建者和知道至少14种语言 - “Phoenix in Programming”的家伙编写的非常精心准备的书。

Phoenix与Symfony或任何其他框架有很多不同的结构,因为它只是由函数组成。你没有黑盒中间件,但你可以创建任何你需要的东西。按照这个顺序

凤凰处理请求:

your request in browser 
|> Endpoint (in lib folder) 
|> Router (as the rest in web folder) 
|> Pipeline (set of Plug functions in router as well) 
|> Controller 

然后控制器使用视图(而不是中间件可以定义功能,您希望呈现模板时已经启用)和模板 - 只为HTML标签一个占位符。

开始与凤凰城的伟大旅程的最佳想法是服从惯例。每当你要添加新的动作,你必须:

  • 在路由器中添加新条目(在router.ex
  • 添加新的控制器或使用现有的(在网络/控制器)
  • 添加新视图或使用现有的(在网络/人次)
  • 添加新模板或使用现有的(在网络/模板)

好运。