12 Stimmen

Wie verwalten Sie den Lebenszyklus der PHP-Projektentwicklung?

Ich habe an mehreren PHP-Projekten gearbeitet und habe immer Probleme, meine Arbeit zu organisieren. Wo entwickeln Sie Ihre Anwendung - auf localhost, remote server oder vielleicht auf dem Produktionsserver(!) ? Wenn ich auf meinem localhost arbeite, schicke ich neue Dateien per ftp - aber manchmal passiert es, dass ich eine Datei vergesse und es ist einfach ermüdend, mehrere Verzeichnisse zu durchsuchen, um geänderte Dateien zu kopieren. Welche bewährten Praktiken schlagen Sie vor?

10voto

Colonel Sponsz Punkte 1691

So verwalten wir unsere kommerzielle Website:

  1. Entwicklung in einem lokalen Sandkasten
  2. Einchecken in SVN
  3. Automatisierte Erstellung/Tests von SVN auf internen Entwicklungsserver
  4. Skriptgesteuerte Bereitstellung mit rsync zum Staging Server für QA/UAT
  5. Skriptgesteuerte Bereitstellung in der Produktion Server.

Staging- und Produktionsserver werden beide vom ISP gehostet und sind hardware- und versionsmäßig auf RHEL abgestimmt, der interne Entwicklungsserver ist ein versionsmäßig abgestimmtes CentOS.

Auf diese Weise sollte es keine bösen Überraschungen geben, wenn der Code auf den Produktionsservern landet, denn auch die Deployment-Skripte werden in Phase 4 überprüft.

1 Stimmen

Wir machen etwas Ähnliches, außer dass wir ein SVN-Checkout verwenden, um den Stage-Build zu erstellen (dabei kann eine Revisionsnummer oder ein Tag angegeben werden - für den Fall, dass der Trunk nicht veröffentlicht werden kann) - und dann rsync verwenden, um sicherzustellen, dass die Produktion genau dem Stage entspricht.

1voto

friol Punkte 6956

Google App Engine hat ein entsprechendes Tool, das geänderte Dateien automatisch in die Produktionsumgebung hochlädt; ich weiß nicht, ob es etwas Ähnliches für PHP gibt. Ein dev2prod-Skript (ein Skript, das dies automatisch tut) sollte also eine gute Lösung sein.

Für die Verwaltung lokaler Quelldateien wird Ihnen vielleicht jeder vorschlagen, eine Quellcode-Kontrollsystem .

0voto

Patryk Kordylewski Punkte 1243

Ich entwickle auf einer Entwicklungsmaschine, die eine identische Umgebung wie die Produktionsmaschine hat - das verhindert ein unterschiedliches Verhalten aufgrund unterschiedlicher Versionen oder Konfigurationen. nach der Fertigstellung verschiebe ich einfach alle Dateien auf den Produktionsserver.

Winmerge ist ein nettes und kostenloses Windows-Tool, mit dem Sie Ihre Dateien zwischen Entwicklungs- und Produktionsrechner verteilen können.

0 Stimmen

Ist das nicht so, als hätte man ein Versionskontrollsystem ohne die Möglichkeit, in der Zeit zurückzugehen?

0voto

Francisco Soto Punkte 10131

Entwickeln Sie auf Ihrem lokalen Rechner mit der exakt gleichen Konfiguration wie Ihre Entwicklungsumgebung (d.h. Apache-Mods, PHP-Erweiterungen usw.) und verwenden Sie ein Versionskontrollsystem (ich bevorzuge SVN), um geänderte Dateien zu verfolgen und so weiter.

Dann können Sie ein Skript in Ihrer Produktions- oder Testumgebung schreiben, um Dateien aus dem Repository in den Webserverpfad zu kopieren/zu aktualisieren.

0voto

Peter J. Nicholls Punkte 165

Wahrscheinlich wird man mich ausschimpfen, weil ich einen alten Beitrag umgeleitet habe, aber ich zeige Ihnen, wie ich das mit kostenlosen Tools mache:

Ich verwende Netbeans, Git, Bitbucket, Source Tree, Gitflow und FTPloy.

Bitbucket.com : für ein kostenloses Konto anmelden. SourceTree: kostenlos von Bitbucket. Großartiges Tool zur Verwaltung von Git-Repositories. Alle Commits, Merges und Pulls können hier durchgeführt werden. Issues in Bitbucket können verfolgt werden.

In Sourcetree nehmen Sie den Master-Branch und klicken auf "git flow" - googeln Sie gitflow - es ist ein fantastischer Arbeitsablauf von Feature-, Hotfix-, Entwicklungs- und Release-Branches und Sourcetree hilft, den Prozess zu automatisieren.

FTPloy.com automatisiert die Bereitstellung Ihres Masterzweigs. Kostenlos ist ein Repo/Server. Aber das Upgrade lohnt sich, wenn Sie den Entwicklungszweig zum Testen auf eine Server-Sandbox verschieben möchten.

Hoffentlich hilft das jemandem, der im Internet sucht!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X