Ich versuche, eine Taktik zu entwickeln, um eine ziemlich standardmäßige webbasierte Anwendung auf Kundenbasis konfigurierbar zu machen, so dass wir sie mehrfach verkaufen können, ohne extra Code schreiben zu müssen jeder Kunde. Es ist ein LAMP-Stack (wo P ist php mit yii2)App für verschiedene Kunden konfigurierbar machen
Meine erste Idee ist es, eine JSON/YAML-Datei pro Kunde zu haben, und ein-/ausschalten Funktionen basierend darauf, was ist. etwas wie {hasAmazonApi: 0, hasEbayApi: 1} etc.
Das Problem damit ist natürlich, viele If/sonst im Code.
Mein Chef hat vorgeschlagen, dass die Konfigurationsdatei verwendet werden könnte, um tatsächlich zu steuern, welchen Code auf dem Server zur Zeit der Bereitstellung bereitgestellt wird, ein Skript schreiben, um den Code zu schreiben - aber das scheint mit Schwierigkeiten und Gefahren behaftet.
Keine Lösung ist perfekt - irgendwelche Vorschläge?
Wir haben entschieden (na ja, ich entschied und verkaufte es an meinen Chef) und habe etwas anderes gemacht. Worauf ich mich eingelassen habe ist ein bisschen wie Haken. Jedes Element des Workflows wird mit einer Funktion ausgeführt, die von run_hook ('some-func', $ args) gestartet wird. Auf diese Weise können wir jeden Hook auf Kundenbasis überschreiben oder einfach den generischen verwenden, wenn das besser zu seinen Bedürfnissen passt. Es ist komplizierter, aber lässt uns mit weit weniger if/else-s – WeeDom