2016-03-31 17 views
1

Nachdem einige Gebäude ein Paket für ein Projekt des Hantierens wir haben erkannt, es gibt einige Probleme mit zu tun, was wir als pro Laravel 5 package development clarityLaravel 5 wiederverwendbares Projekt

erreichen müssen Vielleicht soll ich lieber mein Ziel erkläre und kann jemand vorschlagen eine Richtung in den Kopf zu gehen.

Wir haben eine Laravel 5 Anwendung gebaut, die jetzt "wiederverwendet" werden muss.

Wir mussten Laravel modifizieren und ein Eloquent-Basismodell implementieren, da unsere Datenquelle eigentlich C# Web Services ist. An dem Punkt, an dem der Aufruf an eine Datenbank erfolgen würde, werden wir dies abfangen und einen "API" -Aufruf an SOAP vornehmen.

Der Hauptunterschied wird CSS sein, vielleicht einige JS & Inhalt, aber alle Routen/Controller/Modelle werden über alle Projekte hinweg gleich bleiben. Die meisten Konfigurationen stammen von Endpunkten.

Anfangs haben wir uns überlegt, mehrere Asset-Repositories für das Styling jedes Standorts zu erstellen und einen Basis-Repo zu haben, der das Kern-Laravel-Projekt enthält. Dies schien ziemlich komplex zu werden, da wir aufgrund von Verzweigungen und mehreren Verzeichnisproblemen nicht einfach ein Repo in einem Repo haben konnten.

Wir begannen dann zu experimentieren mit der Idee, den "Kern" als ein Laravel-Paket zu bauen, aber wir scheinen ständig Wände zu treffen. Das neueste Problem ist, Modelle in das Paket aufzunehmen. Für die Modelle, die aufgerufen werden sollen, verwenden wir die Root-Projekte config/composer, um auf diese Modelle zuzugreifen und nicht nur den Service-Provider. Es fühlt sich an, als ob das Paket zu eng mit der Projektkonfiguration verbunden wird.

Gibt es bessere Möglichkeiten, um das zu erreichen, was wir erreichen wollen?

Edit:

Ich habe vergessen, über die mehrere Branchenlösung auf 1 Repo aber wäre dies nicht hässlich, wenn es Entwicklung Feature kommt? Beispiel:

master (core with releases that get pulled into _site*) 
dev (master dev) 
feedback-form (eg. master branch feature) 
_site1 (root site with releases) 
_site1-dev (_site1 dev) 
_site1-reskin (eg. _site1 feature) 
_site2 (root site with releases) 
_site3 (root site with releases) 

Dies hinterlässt eine ziemlich zerstörerische Kraft in den Händen der Entwickler? Lesezugriff mit Pull-Requests könnte das eine Lösung sein?

+0

Klar stelle ich schwierige oder abstrakte Fragen, weil ich nie Antworten bekomme ... – Wancieho

Antwort

0

Also nach einigen R & D scheint es die beste Lösung im Moment ist, 1 Repo mit mehreren Zweigen zu haben. Entwickler haben Lesezugriff und jeder Entwickler erstellt seinen eigenen Fork. Entwickler erstellen Pull-Requests und synchronisieren sie mit dem übergeordneten Repo über die "Upstream" -Fernbedienung, und die Entwickler synchronisieren ihre anderen Forks über zusätzliche Fernbedienungen.

Scheint ein wenig ungeschickt, aber wahrscheinlich "sauberste" Option.