Der Punkt von Yii2 Umgebungen Ordner
Ich versuche zu arbeiten, was den Punkt der Umgebungen Ordner ist.
Ursprünglich hatte ich die Idee, dass man zeigen konnte der webserver Sie die verschiedenen dev
und prod
Ordner in der environment
Ordner, aber nach der Lektüre ein wenig, ich begreife, dass dies nicht der Fall ist.
In Yii-1 würden Sie dies lösen, indem Sie einfach mehrere index.php
's also:
index.php
index-local.php
Also die Frage ist welche Vorteile hat diese neue Umwelt-Struktur tatsächlich geben, mich über den alten Weg?
- ich weiß es auch nicht
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich gefunden Umgebungen sehr nützlich, erlauben Sie mir zu halten, eine gemeinsame code-Basis für mehrere AUFTRAGGEBER-Projekte (basierend auf Yii-App Erweitert) und die Einrichtung einer anderen Umgebung für jeden spezifischen client, halten Sie Ihren eigenen code-privat und getrennt.
Dazu Lagere ich die Umgebungen Ordner in einem eigenen git-repo aus dem rest des Codes, und ziehen Sie die entsprechenden Ordner auf einem client - /Projekt-basis.
Damit kann ich eine gemeinsame code-Basis für alle Projekte und hinzufügen/überschreiben Sie eine Datei für einen bestimmten Kunden oder Projekt, wobei noch separate dev/prod config-Einstellungen. Wenn der client verwendet, können andere Entwickler auch, Sie sind auch gesorgt. In dieser Weise wird nur der common code, die ich wählen, wird gemeinsam zwischen Kunden und benutzerdefinierten code wird privat gehalten werden.
Habe ich auch zog der Komponist.json Datei in den Umgebungen Ordner, damit ich ziehen kann, in verschiedenen Erweiterungen pro Kunde/Projekt halten die privaten auch.
Init-Befehl kann ein sehr mächtiges Werkzeug, und Sie nicht haben, sich selbst zu begrenzen, um die Vorlage, die die core-Entwickler.
Wenn Sie nicht brauchen, Umgebungen, dann verwenden Sie Sie nicht, aber ich versichere Ihnen, einige Leute finden es sehr nützlich.
Yii2 Dokumentation in RIF, aber Sie sollten dies Lesen :
https://github.com/yiisoft/yii2/blob/master/docs/guide/apps-advanced.md#configuration-and-environments
Müssen Sie yii
init
Befehl zum wechseln zwischen diesen Umgebungen.BEARBEITEN :
Diesem neuen Umfeld feature ist mehr als nur verwenden verschiedene config-Datei. Sie können verschiedene Ordner-Struktur, die verschiedene Eingabe-Skript...usw
Personnaly ich nicht verwenden diese Funktion, ich brauche es nicht (ich werde einen anderen Eintrag als Skript mit Yii 1), aber ich denke, das ist nicht nutzlos.
Ich glaube, Sie hatte nicht den wahren Zweck von Umgebungen eingeführt, in Yii2.
Werde ich versuchen zu erklären, was war der wichtigste Zweck, das hinzufügen von Umgebungen yii aus der Entwickler Sicht auf ein Beispiel und hoffe, Sie werden wirklich schätzen seine Nützlichkeit.
Nehmen wir an, für einen moment, dass Sie ein team von Entwicklern (z.B. 5-7 Personen) arbeiten auf mittleren bis großen Projekt umgesetzt werden in Yii. Um effektiv an diesem Projekt arbeiten, Ihr team entscheidet sich für einige CVS oder SVN (z.B. GIT) und halten alle Dateien des Projekts im repository in der cloud für das ganze team. Das ist de-facto-standard beim arbeiten auf mittleren bis großen Projekten in teams und niemand wird widerstehen, dass es der einzige bequeme und einfache Weise.
Ok, jetzt nehmen wir an, Sie verwenden Yii-1.x oder Yii2 mit dem Ansatz der verschiedenen Eingabe-Skripts zu unterscheiden zwischen lokalen (Entwicklungs) - und Produktionsumgebungen Verbindung zu db oder setzen einige andere Umgebung bestimmte configs. Alles ist ok und funktioniert. Aber nehmen wir an, Ihre team-Mitglieder umgesetzt, etwas neues über das Projekt und die Sie Auschecken repository arbeiten auf aktualisierte version, und Sie plötzlich feststellen, dass Ihre lokalen config-Datei (in diesem Fall der Eintrag script mit config) ist überschrieben mit den anderen team-Mitglied ist die Datei, die gezogen änderungen an repository (denn jedes von Ihnen ist mit Ihrem lokalen Maschine db mit anderen Datenbank-Namen oder OS, oder config, oder einfach, weil Ihr team verwendet eine lokale Entwicklung von server-db, aber Sie sind im Urlaub und kann nicht alles verwenden außer den lokalen Rechner).
Also in der Regel Yii2 Umgebung fügt hinzu, mehr Flexibilität für die Verwendung verschiedener Umgebungen, jede mit Ihren eigenen spezifischen Konfigurationen während der Verwendung auch die Allgemeinen (gemeinsamen) configs bei der Arbeit in teams auf mittleren bis großen Projekten damit, warum das Beispiel in der Anleitung gegeben wird, auf advanced-app-Projekt.
Sicherlich kann man alles überwinden, die oben angeführt mit einigen Lösungen oder .gitignore, das standardmäßig verwendet wird um das problem zu überwinden, erklärte in Yii2 mit Umgebungen. Aber:
und
Insgesamt Yii2 ist ein tolles Produkt. Nicht nur, es fügt viele neue features zu den bereits großen Rahmen, aber es ist auch robuster und flexibler als Yii-1.x (trotz der Tatsache, dass Yii-1.x war schon sehr robust).
Als für Laravel oder andere PHP-framework, es hängt wirklich... Jeder findet seine/Ihre eigenen Lieblings.
.htaccess
zu überschreiben, entfernen Sie die lokale Eintrag script zum Beispiel. Und wieder war dies ein weiteres Beispiel. Ich kann viele viele Beispiele mehr, dass der neue Ansatz ist besser und einfacher zu bedienen. Ihr argument ist, dass man nicht mit beiden Umgebungen gleichzeitig (ohne init), aber wenn Sie verwenden müssen, um zwei Umgebungen zu einer Zeit, als Sie etwas falsch machen. Es gibt immer starke Unterscheidung zwischen Umgebungen (dev, prod, test,...)Für diejenigen, die müde von kopieren, um die Dateien, die ich erstellt ein nützliches Skript, das können Sie im hintergrund laufen, damit die Dateien im sync auf Ihrem dev-Umgebung:
Datei sync-env-files.sh
Führen Sie dann das Skript im hintergrund oder fügen Sie einen cron mit der Herde
Erwähnen möchte ich in Ergänzung zu @AngelCoding, da diese Frage wird immer noch gesehen, dass ich den
environments
Ordner viele jetzt und auf jeden Fall den Punkt sehen, von es.Der ersten Dinge, die ich tun, in irgendeiner open-source-Projekt ist ein Projekt anlegen, für das die Codebasis auf GitHub und dann ein anderes, eigenes, ein, auf Bitbucket für die Konfiguration, in anderen Worten, die
environments
Ordner.Dass dieser Ordner hat es viel leichter für mich zu trennen, meine Konfiguration in ein eigenes repository.
Also die
environments
Ordner hat eine Menge von Anwendungen und wirklich hilft, um die separate Konfiguration für eine einfachere Nutzung, auch wenn es scheint nicht, wie es zunächst.