2016-08-03 9 views
0

Ich bin auf der Suche nach einer Möglichkeit, etwas vergleichbar zu bündeln in Symfony oder ein Plugin in CakePHP zu bauen. Beispiel: Im Benutzermodul befinden sich alle Controller, Vorlagen und Ansichten in einem einzigen Ordner, so dass ich einfach auf sie zugreifen kann.Wie kapselt man Code in Modulen, Bundles oder Plugins ein?

Und ich mag Ähnliche Modul zB Zahlungsmodul, Inventarmodul usw.

In der heutigen Architektur basierend auf Funktionalität schaffen, ich alle Controller zusammenhalten kann, alle zusammen Ansichten. Da mein Projekt sehr groß ist, hat es jetzt fast 140 Controller und so weiter und es sieht sehr unordentlich aus. Was bietet Phoenix für modularen Code?

+1

Es gibt keinen sauberen Weg, um es zu tun, wie ich weiß. Auch verwandt: http://stackoverflow.com/questions/38249813/splitting-phoenix-project-intoapplications – sobolevn

Antwort

0

Am Anfang, überprüfen Sie diese link, aber ich rate Ihnen auch stark zu prüfen, sehr gut vorbereitet Buch geschrieben von Schöpfer von Phoenix, Schöpfer von Elixir und Jungs, die mindestens 14 Sprachen - "Programmierung in Phoenix".

Phoenix hat eine sehr viel andere Struktur als Symfony oder ein anderes Framework, weil es einfach aus Funktionen besteht. Sie haben keine Blackbox-Middleware, aber Sie können alles erstellen, was Sie brauchen.

Phoenix Griff Anfragen in dieser Reihenfolge:

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 

Dann nutzt Controller Ansicht (anstelle von Middleware Sie Funktionen definieren, die Sie aktiviert haben wollen, wenn Vorlagen Rendering) und Vorlagen - nur ein Platzhalter für HTML-Tags .

Die beste Idee für den Anfang der großen Reise mit Phoenix ist Konventionen zu folgen. Wann immer Sie wollen neue Aktion hinzuzufügen müssen Sie:

  • neuen Eintrag im Router hinzufügen (in router.ex)
  • neuen Controller hinzuzufügen, oder verwenden Sie eine vorhandene (in web/Controller)
  • fügen Sie neue Ansicht oder Verwendung vorhandene (in web/views)
  • neue Vorlage hinzufügen oder eine Verwendung der vorhandenen (in Web/templates)

Viel Glück.