2016-08-03 63 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
  • 添加新的控制器或使用現有的(在網絡/控制器)
  • 添加新視圖或使用現有的(在網絡/人次)
  • 添加新模板或使用現有的(在網絡/模板)

好運。