Ankündigung

Einklappen
Keine Ankündigung bisher.

Entwicklerumgebung mit phpstorm und GIT

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Entwicklerumgebung mit phpstorm und GIT

    Hallo zusammen.

    (Seit mir nicht böse, wenn das Thema offtopic ist.. ich hatte keine wirklich passenden Bereich gefunden.)

    Folgendes Szenarium.

    1. Arbeitsrechner mit Windows 7 mit phpstorm 7.x und oracle VM Virtualbox mit Ubuntu.

    2. Linux Server mit LAMP Umgebung im lokalen Netz 192.168.x

    Das origin/master Repository liegt auf dem Server.
    Auf dem Arbeitsrechner soll entwickelt und getestet werden.
    Nach dem Testen sollen die Daten via git auf den Server commited.

    FRAGE:

    Wenn ich einen clone via phpstorm aus dem Server lokal auf dem Arbeitsrechner anlege, kann man Dateien bearbeitet aber ich muss sie jedesmal commiten, damit man das Ergebnis in der VM Box mit dem Browser ansehen kann.

    Wenn ich einen Clone vom Server auf meine lokale Virtual Box erzeuge und mit sftp ein Projekt mit phpstorm anlege wie kann ich dann die Daten aus phpstorm von der VMBox auf den Server committen?

    Oder anders gefragt wie richtet man die Umgebung so ein, dass man effizient lokal arbeiten kann um dann die Arbeit zentral auf den Server zu committen, damit sie für andere Entwickler zugänglich ist... ?

    Ich hoffe ich habe meine Fragen verständlich formuliert...

    Freue mich über jede Antwort und Unterstützung.

    Michael


  • #2
    Geht ziemlich einfnach mit vagrant.

    Dabei wird ein oder mehrere lokale Ordner einfach mit einem Ordner auf der VM gesynct (meistens irgendwas im Docroot). Es gibt übrigens auch verschiedene fertige Provisioning-Files, die alles entsprrechend automatisch einrichten.

    Um das dann noch weiter auf den Server zu pushen, würde ich "zu Fuß" gehen Aber du kannst natürlich auch bestimmte Sachen automatisieren und dann zum Beispiel über nen git-Hook ausführen: http://git-scm.com/book/en/Customizing-Git-Git-Hooks

    Kommentar


    • #3
      "Was" soll für andere Entwickler zugänglich gemacht werden? Ich lese raus, dass es schon ein Konzept für VersionControl gibt. Ansonsten vielleicht mal Vagrant anschauen.
      Standards - Best Practices - AwesomePHP - Guideline für WebApps

      Kommentar


      • #4
        Danke zusammen.
        Bevor ich aber wieder ein anderes Tool einsetze und wieder damit neue Setup-Probleme bekomme... versuche ich es erst einmal selbst zu verstehe wie man das machen kann, sofern das geht.

        Also auf dem netzinternen - Server liegt das Origin Repository. Ich habe dort ein Projektarchiv mit git clone --bare erzeugt, das beispiel.git liegt irgendwo auf der Server zu dem jeder der Entwickler Zugriff hat.
        Die kleine Linux Umgebung auf dem Windows-Rechner soll nur für den jeweiligen Entwickler zugänglich sein. Die Frage ist nur soll man das in phpstorm mit

        a) check out from Version Control oder
        b) Create New Project from existing Files via sftp

        bewerkstelligen? Wenn ich die Version a) benutze, kann ich zwar damit ein Projekt einrichten, aber ich kann meine Änderungen an des Skripten erst testen, wenn ich danach auf die kleine lokale Linux-Umgebung commite! Das ist aber für den Workflow zu lang.
        Wenn ich die Version b) benutzte, kann ich meine Änderungen gleich testen und sehen ob alles okay ist aber wie kann ich dann aus phpStorm heraus die Arbeit auch commiten, damit die anderen Entwickler auch von den Änderungen erfahren???

        Kommentar


        • #5
          Ich verwende beides für meine Projekte also sftp und git aus phpstorm heraus funktioniert das wunderbar:

          Sftp für den upload auf das Testsystem und git für den späteren commit für die anderen Entwickler...

          Kommentar


          • #6
            Ich nutze in meiner Lokalen einen Shared-Folder, welchen ich in der VM dann irgendwohin mounte und den DocRoot entsprechend anpasse. So habe ich innerhalb der VM immer den aktuellsten Stand.
            Zitat von nikosch
            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

            Kommentar


            • #7
              Was hält dich davon ab dein lokales GIT-Repository jeweils auf das Test-System und den Entwicklungsserver zu committen ?

              SFTP kannst du dir sparen, wenn du eh eine lokale virtuelle Kiste hast, die unter deiner Kontrolle steht -> git.
              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

              Kommentar


              • #8
                Ich habe Uberspace, dort ist gitolite eingerichtet. Alle meine Privaten Repos befinden sich im ~/repositories da sind alle bare Repositories dort.

                Unter /var/www/virtual/<username>/ sind die bare repositories ausgecheckt(branch master) und das document root des ausgecheckten repository ist symlinked auf subdomain.domain.tld

                Es lauft ein cronjob der mir den master Branch jede minute pullt. Dieser Part ist haesslich, glaube mit einem git commit hook koennte ich umgehen, nicht ausprobiert.

                Lokal habe ich Xampp,Cygwin,Composer,NodeJS und PHPStorm installiert. In PHPStorm habe ich den Interpreter eingestellt und unter Directories Einstellungen den Web Root.

                Mit Doctrine Migrations habe ich einen Setup Script erstellt so dass ich das Testsystem mit einem einfachen make aufruf aufsetzen kann.

                Nun entwickle ich lokal in feature Branches und kann mit PHPStorm direkt den PHP Internen webserver starten und sehe meine Aenderungen, wenn alles so aussieht wie ich es mir vorstelle, checke ich master branch aus und merge den feature branch in den Master und pushe es. Aufm dem Server wird es dann ausgecheckt. Manchmal muss ich dann auch noch haendisch migrationsscript auf dem server ausfuehren um die Datenbank zu aktualisieren oder wenn sich was in Config Template veraendert, muss ich auch die Config files neu generieren(Dabei werden aber werte, die bereits eingetragen sind nicht ueberschrieben)

                Wenn ich ein neues Projekt erstellen will, so bearbeite ich die config von gitolite-admin und pushe es auf dem server, dadurch wird das Projekt als initiales bare git repository auf uberspace eingerichtet, ich clone es dann auf dem server, richte cronjob ein und clone es dann lokal. Dieser schritt ist halt nicht voll automatisiert, aber passiert nicht oft.
                apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                Kommentar


                • #9
                  Zitat von tr0y Beitrag anzeigen
                  Was hält dich davon ab dein lokales GIT-Repository jeweils auf das Test-System und den Entwicklungsserver zu committen ?

                  SFTP kannst du dir sparen, wenn du eh eine lokale virtuelle Kiste hast, die unter deiner Kontrolle steht -> git.
                  Danke für die vielen Vorschläge.

                  Ich habe, wie schon erwähnt, auf meiner lokalen VM meinen Clone und auch ein Projektarchiv. Wenn ich bei phpstorm die Option wähle "Check out from Version Control" (git) , dann geht das einwandfrei. Ich gebe die Repository URL mein projektarchiv beispiel.git an und Parent Direktory einen Pfad auf Laufwerk c:\ auf meiner Arbeitsumgebung. Dann cloned phpstorm das projekt. Wenn ich dann eine Änderung mache, wird die Änderung zwar in meinem lokalen C:\ verzeichnis geändert. Dort kann ich es aber nicht testen. Ich muss das dann erst commiten damit die Änderungen in meiner vm auch aufschlagen und ich es mit dem Browser testen kann.... Irgendwas hab ich da nicht richtig verstanden. Wie mach ich das richtig, bevor ich jetzt Vagrant zum Einsatz bringe??

                  Kommentar


                  • #10
                    Zitat von YesNo Beitrag anzeigen
                    Danke für die vielen Vorschläge.

                    Ich habe, wie schon erwähnt, auf meiner lokalen VM meinen Clone und auch ein Projektarchiv. Wenn ich bei phpstorm die Option wähle "Check out from Version Control" (git) , dann geht das einwandfrei. Ich gebe die Repository URL mein projektarchiv beispiel.git an und Parent Direktory einen Pfad auf Laufwerk c:\ auf meiner Arbeitsumgebung. Dann cloned phpstorm das projekt. Wenn ich dann eine Änderung mache, wird die Änderung zwar in meinem lokalen C:\ verzeichnis geändert. Dort kann ich es aber nicht testen. Ich muss das dann erst commiten damit die Änderungen in meiner vm auch aufschlagen und ich es mit dem Browser testen kann.... Irgendwas hab ich da nicht richtig verstanden. Wie mach ich das richtig, bevor ich jetzt Vagrant zum Einsatz bringe??
                    ist doch auch klar, wenn du deine VM als remote server einstellst, deine VM soll die ausgechecketen dateien haben und da sollte dein PHPStorm arbeiten, die bare repositories sollten sich auf dem entfernten server befinden.

                    du clonst vom entfernten server auf dein lokales system, das locale system sollte von apache wahrgenommen werden.

                    will sagen, aehnlich wie bei github, auf github ist das bare repository, du clonst es in die VM von github aus, PHPStorm greift dann auf die dateien der VM zu. Hier wirste feststellen dass du dazu shared folder brauchst, dein windows verzeichnis wird mit der vm geshared und da wirste sehen dass an der stelle VM und IDE schlecht zusammenarbeiten, somit wirste dann die VM wegschmeissen
                    apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                    Kommentar


                    • #11
                      Ich hab die Lösung.

                      VirtualBox Gast-Extension installiert. Gemeinsames Laufwerk für Host und Gast eingerichtet und schon fluppts...

                      Schönes Wochenende und danke nochmals.

                      Kommentar


                      • #12
                        Zitat von YesNo Beitrag anzeigen
                        Ich hab die Lösung.

                        VirtualBox Gast-Extension installiert. Gemeinsames Laufwerk für Host und Gast eingerichtet und schon fluppts...

                        Schönes Wochenende und danke nochmals.
                        bis du anwendungen mit viel IO hast(e.g. markdown wiki etc), dann ists vorbei
                        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                        Kommentar


                        • #13
                          Kommt auf die Hardware an, BlackScorp.
                          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                          Kommentar


                          • #14
                            Zitat von tr0y Beitrag anzeigen
                            Kommt auf die Hardware an, BlackScorp.
                            probier es aus, mach eine vagrant vm und stelle ein dass der shared folder document root ist, es wird zwar abhänig von hardware anders schlecht funktionieren aber es wird schlecht funktionieren, da dauert es dann teilweise paar sekunden bis du ein ergebnis siehst.

                            habe das zb bei http://kohanaframework.org/3.3/guide/ gesehen, diese doku seite wird live generiert, .md files werden eingelesen und im template geparst

                            PHP Built in Server ist eh am besten für lokale entwicklung
                            apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                            Kommentar


                            • #15
                              Zitat von BlackScorp Beitrag anzeigen
                              probier es aus, mach eine vagrant vm und stelle ein dass der shared folder document root ist, es wird zwar abhänig von hardware anders schlecht funktionieren aber es wird schlecht funktionieren, da dauert es dann teilweise paar sekunden bis du ein ergebnis siehst.

                              habe das zb bei http://kohanaframework.org/3.3/guide/ gesehen, diese doku seite wird live generiert, .md files werden eingelesen und im template geparst

                              PHP Built in Server ist eh am besten für lokale entwicklung
                              PHPStorm Build-In Webserver Gateway, jo.
                              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                              Kommentar

                              Lädt...
                              X