2016-08-03 23 views
0

symfonyのバンドルに似たものやCakePHPのプラグインをビルドする方法を探しています。たとえば、ユーザーモジュールでは、すべてのコントローラ、テンプレート、ビューが1つのフォルダにあり、簡単にアクセスできます。現在のアーキテクチャでモジュール、バンドル、またはプラグインでコードをカプセル化する方法は?

そして、私は機能性に基づいて類似したモジュールを作成したい、例えば、支払いモジュール、在庫モジュールなど

、私は一緒に、すべてのビューをすべてのコントローラを一緒に維持することができます。私のプロジェクトは非常に大規模なので、今では140台近くのコントローラがあり、それは私にとって非常に面倒です。 phoenixはモジュラコードをどのように提供しますか?

+1

私が知る限り、それを行うためのきれいな方法はありません。関連:http://stackoverflow.com/questions/38249813/splitting-phoenix-project-into-applications – sobolevn

答えて

0

最初は、linkにチェックしてください。しかし、私はまた、14の言語を知っているElixirの作成者、Phoenixの作成者が作成した非常によく準備された本をチェックすることを強くお勧めします。

フェニックスは、単に機能で構成されているため、Symfonyや他のフレームワークとはまったく異なる構造をしています。ブラックボックスのミドルウェアはありませんが、必要なものはすべて作成できます。そのために

フェニックスハンドル要求: - HTMLタグのためだけのプレースホルダ

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 

はその後、コントローラは、テンプレート(代わりにあなたがテンプレートをレンダリングする際に有効にしているしたい機能を定義することができるミドルウェアの)ビューを使用しています。

フェニックスとの大きな旅の始まりのベストアイデアは、慣習に従うことです。あなたがする必要が新しいアクションを追加したいとき:(router.ex中)ルータに新しいエントリを追加し

  • 新しいコントローラを追加したり(ウェブ/コントローラに)既存のものを使用
  • 新しいビューまたは使用を追加1(ウェブ/ビューで)
  • は、新しいテンプレートを追加したり、既存の(ウェブ/テンプレート中)

幸運を使用する既存の。

関連する問題