dimitri: workflow PHP - best practice

Hallo,

meine Frage ist, wie ich am besten meinen Workflow einrichten soll. Vielleicht hat jemand Tips für mich.

auf einem remotehost arbeite ich über ssh an einem projekt. Die Dateien bearbeite ich via Notepad++ direkt auf dem remote development server. Von da ab deploye ich das Zeug über mercurial ins Livesystem. Meine Frage ist nun:

ich möchte auf Eclipse oder eine andere IDE umsteigen und nicht mehr die Dateien direkt bearbeiten. Wie machen das die Profis? Soll ich mir lokal eine identische Umgebung erschaffen und die Dateien, wenn alles läuft, via SCP oder FTP auf den dev-Server schieben? Oder gibt es eine Möglichkeit, Eclipse so zu konfigurieren, dass die Dateien gleich via FTP hochgeladen werden, ähnlich wie bei Notepad++?

wie würdet ihr vorgehen? danke und viele grüße
dimitri

  1. hi,

    meine Frage ist, wie ich am besten meinen Workflow einrichten soll. Vielleicht hat jemand Tips für mich.

    auf einem remotehost arbeite ich über ssh an einem projekt. Die Dateien bearbeite ich via Notepad++ direkt auf dem remote development server. Von da ab deploye ich das Zeug über mercurial ins Livesystem. Meine Frage ist nun:

    ich möchte auf Eclipse oder eine andere IDE umsteigen und nicht mehr die Dateien direkt bearbeiten. Wie machen das die Profis? Soll ich mir lokal eine identische Umgebung erschaffen und die Dateien, wenn alles läuft, via SCP oder FTP auf den dev-Server schieben? Oder gibt es eine Möglichkeit, Eclipse so zu konfigurieren, dass die Dateien gleich via FTP hochgeladen werden, ähnlich wie bei Notepad++?

    wie würdet ihr vorgehen? danke und viele grüße

    also ich habe als editor "scite". mit f5 übergibt er das skript an php und zeigt mir im ausgabefenster entweder die fehler (mit f4 kann ich den anspringen im code) oder den zu erzeugenden krempel.

    ich haber dann xampp laufen, bzw. apache und teste das ergebnis im browser beim localhost.

    am ende musste natürlich noch hocladen per ftp. wobei mein FileZilla, wenn ich über dessen ordneransicht die datei geöffnet habe, schon vorschlägt, die geänderte datei hochzuladen.

    das alles geht vermutlich nur dann gut, wenn das projekt etwas überschaubarer ist und zum beispiel nur php im spiel ist.

    mfg

    tami

  2. Hi,

    ich möchte auf Eclipse oder eine andere IDE umsteigen und nicht mehr die Dateien direkt bearbeiten. Wie machen das die Profis?

    Die clonen sich ihr repository local, arbeiten und testen damit, und pushen dann zurück ins repository wenn ihre Änderungen getestet sind und so laufen wie gewünscht.

    Soll ich mir lokal eine identische Umgebung erschaffen und die Dateien, wenn alles läuft, via SCP oder FTP auf den dev-Server schieben?

    Nein, auf dem Dev-Server pullst du aus dem repository.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?

    1. Hello Chris,

      ich möchte auf Eclipse oder eine andere IDE umsteigen und nicht mehr die Dateien direkt bearbeiten. Wie machen das die Profis?

      Die clonen sich ihr repository local, arbeiten und testen damit, und pushen dann zurück ins repository wenn ihre Änderungen getestet sind und so laufen wie gewünscht.

      Sollte das nicht heißen:

      Die clonen sich ihr repository local, operaten und checken damit, und pushen dann back ins repository wenn ihre Changements checked sind und so performen as designed.

      ?

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de

  3. Moin!

    meine Frage ist, wie ich am besten meinen Workflow einrichten soll. Vielleicht hat jemand Tips für mich.

    auf einem remotehost arbeite ich über ssh an einem projekt. Die Dateien bearbeite ich via Notepad++ direkt auf dem remote development server. Von da ab deploye ich das Zeug über mercurial ins Livesystem. Meine Frage ist nun:

    Remote ist immer eher doof, weil Netzverbindungen nun mal auch abbrechen können, aus diversen Gründen. Und sie sind langsamer, als lokales Arbeiten - das kann im Zweifel echt nerven.

    ich möchte auf Eclipse oder eine andere IDE umsteigen und nicht mehr die Dateien direkt bearbeiten. Wie machen das die Profis? Soll ich mir lokal eine identische Umgebung erschaffen und die Dateien, wenn alles läuft, via SCP oder FTP auf den dev-Server schieben? Oder gibt es eine Möglichkeit, Eclipse so zu konfigurieren, dass die Dateien gleich via FTP hochgeladen werden, ähnlich wie bei Notepad++?

    Ja, lokal eine Umgebung wäre eine gute Idee. Gern auch als virtuelle Maschine, die dadurch dann ein beliebiges, idealerweise identisch zum Produktivserver gestaltetes Betriebssystem hat, inkl. der dazu notwendigen Serversoftware und PHP-Version.

    Außer dem Produktivserver kann man sich noch beliebig viele schöne Server ausdenken, die vorher aktiv sind, wie z.B.
    - Staging-Server: Auf den wird die Software eingespielt und geprüft, bevor dieser Server zum Produktivserver wird (und die aktuell produktiven Server vom Netz gehen und wieder neue Staging-Server sind, bzw. als Rollback-System zur Verfügung stehen, falls das Update doch irgendwo Probleme macht).
    - Test-Server: Für die QA, die auf diesen Systemen die Abnahme der Software macht.
    - Development-Server: Zur Integration mehrerer Entwicklungszweige gibts einen zentralen Development-Server, der genau wie alle anderen Server möglichst identisch zur produktiven Umgebung ausschaut, aber eventuell weniger leistungsfähige Ressourcen hat.

    • Lokaler Development-Server: für den individuellen Entwickler - auf diesem System kann er alles mögliche kaputt machen und neu erschaffen, ohne seine Kollegen damit zu nerven.

    Außer auf dem lokalen Entwicklungsserver werden alle anderen Server nur aus dem Versionsverwaltungssystem befüllt, oder es werden zentral Softwarepakete geschnürt, die dann auf die Umgebung getan werden.

    Vorteil: Wenn man aus Versehen vergisst, eine Datei einzuchecken, dann wird das System nicht korrekt funktionieren, wenn man die Version aus der Versionskontrolle auf den Development-, Test- oder Staging-Server spielt - und das wird hoffentlich bemerkt.

    Natürlich ist es verlockend, als einziger Entwickler nebenbei zwar Versionskontrolle zu benutzen, aber dann die Dateien einfach allesamt auf den neuen Server zu tun.

    Auf der anderen Seite ist zum lokalen Entwickeln unheimlich wichtig, dass man sehr schnell das Ergebnis einer Änderung sieht. Also Speichern - Neu laden - fertig. Schneller geht nicht, und genau so schnell muss die lokale Lösung sein können (oder noch schneller, wenn die eigene IDE das anbietet).

     - Sven Rautenberg

    1. Hallo Sven,

      vielen Dank für deine ausführliche Antwort!

      Remote ist immer eher doof, weil Netzverbindungen nun mal auch abbrechen können, aus diversen Gründen. Und sie sind langsamer, als lokales Arbeiten - das kann im Zweifel echt nerven.

      das habe ich leider auch schon oft selbst so erlebt. Du hast recht, ich sollte von remote auf lokal umsteigen.

      Ja, lokal eine Umgebung wäre eine gute Idee. Gern auch als virtuelle Maschine, die dadurch dann ein beliebiges, idealerweise identisch zum Produktivserver gestaltetes Betriebssystem hat, inkl. der dazu notwendigen Serversoftware und PHP-Version.

      klingt vernünftig. Und durch die virtuelle Maschine kann ich mehrere Versionen nebeneinander fahren. Das ist gut.

  4. Hi,
    nach allem bin ich dabei gelandet, lokal mit eclipse zu entwickeln, testen mit WAMP und später per ftp (TC) mit dem Server zu synchronisieren.

    Oder gibt es eine Möglichkeit, Eclipse so zu konfigurieren, dass die Dateien gleich via FTP hochgeladen werden, ähnlich wie bei Notepad++?

    Gibt es. Einmal ein Teil namens FTP-Sync, wobei man Aptana installieren soll. Das Tool soll automatisch den Workspace mit dem Server synchronisieren, quasi im Hintergrund und ohne die Vorteile, die Sven genannt hat, zu schmälern. Nachteil: a) will ich das gar nicht unbedingt (server ständig synchron zu meiner lokalen Kopie) und b) !!! Aptana nervt übel. Ich habs zum Glück wieder weg bekommen. Hat mir eigentlich die gesamte gewohnte eclipse Oberfläche zerschossen.

    Zweitens kann eclipse natürlich sich direkt auf ftp-Accounts verbinden. Dateien können dann direkt bearbeitet werden. Das ist gut, für eine schnelle kleine Änderung. Zum Entwickeln ist es mir zu langsam.

    Window->Show View->Remote Systems -> Remote Systems
    dann
    New Connection -> Ftp only

    Beim Anlegen der Ordnerstruktur seines Projektes half es mir, darauf zu achten, auf hoher Ordner-Ebene die Unterscheidung zu machen: das wird im täglichen Bedarf synchr., das nicht.

    Cheers,
    Baba

  5. hi,

    .. Oder gibt es eine Möglichkeit, Eclipse so zu konfigurieren, dass die Dateien gleich via FTP hochgeladen werden, ähnlich wie bei Notepad++?

    Natürlich ist das (FTP, SCP) möglich, auch mit Netbeans IDE.

    wie würdet ihr vorgehen? danke und viele grüße

    Du hast doch alles, das Wichtigste ist die Versionskontrolle und das Deployment aus der Versionskontrolle heraus. Und:  Wenn das Testsystem auf einem Multi-User-fähigen OS läuft, muss nicht jeder Entwickler ein eigenes Testsystem haben.

    Hotti

  6. Hallo,

    Wir machen das folgendermaßen:

    Lokal entwickeln und jede Änderung in git einchecken, ab und zu mal die änderungen an den zentralen Firmen-git-server pushen damit die anderen Entwickler auch in den Genuss der änderungen kommen können.

    Wir haben in git auch die Datenbankenmigrationen so dass man die Datenbank auch sonst überall ohne Probleme auf den neuesten Stand bringen kann.

    Wir haben dann einen Staging-Server auf dem wir, falls wir das jemandem zeigen möchten (Kunden, Chef, etc.), die änderungen aus git ziehen und die migrationen der Datenbank fahren, so dass man mit 3 Befehlen auf der Konsole eine lauffähige kopie auf dem Staging-Server hat.

    Und das gleiche machen wir dann auf dem Production-Server nur nicht so oft.

       Jeena

    -- Jlog | Gourmetica Mentiri