我正在寻找一种方法来构建类似于symfony中的bundle或CakePHP中的插件。例如:在用户模块中,所有控制器,模板和视图都将位于单个文件夹中,以便我可以轻松访问它们。
我想基于功能创建类似的模块,例如支付模块,库存模块等。
在目前的架构中,我可以将所有控制器放在一起,将所有视图放在一起。由于我的项目非常庞大,所以现在它有近140个控制器等等,对我来说它看起来很乱。凤凰为模块化代码提供了什么?
答案 0 :(得分:0)
一开始,请查看link,但我也强烈建议您查看由凤凰的创造者,Elixir的创造者和知道至少14种语言的人写的非常精心准备的书 - "凤凰城编程"。
凤凰城的结构与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
)