Ankündigung

Einklappen
Keine Ankündigung bisher.

Unterstützende Tools im Bereich der PHP-Entwicklung

Einklappen

Neue Werbung 2019

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

  • Unterstützende Tools im Bereich der PHP-Entwicklung

    Mich würde mal interessieren was ihr so neben Webserver und einer IDE/Editor noch so an Tools einsetzt, bei der Entwicklung von PHP-Anwendungen.
    Um mal ein paar Beispiele nennen in welche Richtung ich denke:

    Tools wie z.b.

    PHPUnit
    PHPT
    SimpleTest
    PHPMD - PHP Mess Detector
    PHP Depend - Software Metrics for PHP
    PHP_CodeSniffer
    PHP_CodeBrowser Release version 0.1.0 - ThinkPHP /dev/blog
    Selenium

    Oder auch im Bereich build/deployment:

    Apache Ant - Welcome
    Maven - Welcome to Apache Maven
    pago's pake at master - GitHub
    GNU Make - GNU Project - Free Software Foundation (FSF)
    Rake -- Ruby Make
    Home - pake - GitHub
    Phing

    Continous Integration anyone ?

    Hudson CI
    phpUnderControl / CruiseControl Home
    xinc - Project Hosting on Google Code

    QA:

    Sonar

    DB-Migration/Deployment:

    dbdeploy.com
    LiquiBase | Database Refactoring | home
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

  • #2
    Benutzen die echt Comic Sans? LOL Sorry for OT.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Comic Sans 4 Wor(l)d Domination

      Ja blub nutzt hier echt niemand solche Tools ? Oder ist der Thread nur noch niemand aufgefallen ? *push*

      Hatte gehofft vielleicht noch ein paar nette Ideen und Tools kennenzulernen die ich mir mal anschauen kann.

      Ich kann ja mal mein aktuelles Setup beschreiben wie ich es meist nutze z.b. auch für meine kleine Bibliothek und auch für meine Seite:



      Ich habe vor ein paar Wochen auf meinem Server Hudson als CI-Lösung aufgesetzt um den ganzen test/qa/metriken/statistiken etc zu automatisieren und auszulagern und auch etwas einen überblick darüber zu haben wie gerade der status ist, ob die qualität eher sinkt oder steigt (was manche metriken, code-coverage, coding-guidelines, etc angeht), vor allem aber ob die tests alle sauber durchlaufen etc.
      So kann ich durch einfache 'nderungen an den configs auch recht schnell und einfach mal gegen neuere oder ältere versionen verschiedener bibliotheken testen (Zend_Framework, Doctrine, SwiftMailer, HTMLPurifier, ......) und schauen ob sich da nichts geändert hat (natürlich nur solange die tests ausreichend sind )

      Tools wie phpmd, php_CodeSniffer, phpcpd, pdepend, phpunit, kommen bei mir eh schon recht lange zum einsatz um etwas meinen Code zu analysieren und soweiter.
      Alles automatisiert via ant (da mich bei ant doch das ein oder andere stört bzw. fehlt, werde ich wohl da bald mal noch richtung phing schauen solange es PHP 5.2.x bleiben soll oder ab php 5.3 mir mal pagos pake anschauen).

      Selenium standalone setzte ich lokal auch ab und zu für einfachere Tests von z.b. Backends oder auch irgendwelchen einfachen Ajax-Sachen ein, allerdings nur in form des Firefox-Plugins zum direkten tests aufzeichen/laufen-lassen im Browser und dann speichern.
      In phpunit integriert hab ich das aktuell nirgends, da mein mein aktueller Server GUI-los ist und ich daher dort keinen browser (firefox oder ähnliches braucht man ja) hab um das ganze auch automatisiert via Hudson testen zu lassen (irgendwann wird da wohl ein pseudo-x-server nur zu dem zweck noch kommen). Aber Selenium bietet ja netten export direkt in phpunit-tests, was also das automatisieren und testen doch schon verbessern würde.

      Also VCS kommt mittlerweile nur noch git zum einsatz wo ich meist ein extra repository fürs CI hab, wohin ich pushen kann (was ich dann ab und an auch zurücksetzte, oder einfach einen extra-branch wohin ich commiten kann, wenn ich lokal mehrere commits vor dem push aufs hauptrepro zusammenfasse oder auch test-branches).
      Hudson checkt die repros ab und zu und lässt dann voll automatisiert den Build-Job mit der neuen Version durchlaufen.
      Ich krieg dann via Jabber + Email Info darüber ob der Build geklappt hat oder nicht und kann dann in Hudson mir auch die ganzen Änderungen anschauen, sprich verlauf der ganzen Graphen etc.
      Das mit dem extra repository, weil ich dorthin öfters auch mal kleinigkeiten und experimente pusheu nd der server was die performance angeht um ein vielfaches potenter ist als mein notebook, daher läuft dort ein Build(-Versuch) viel schneller durch als lokal und verschwendet auch nicht die Resourcen auf meiner Workstation und ich kann in der Zeit weiterarbeiten.
      Mein Redmine für Issue-Tracking und so bissel Planung und soweiter ist theorhetisch in Hudson integriert um Links in Commitmessages automatisch zum passenden issue zu machen und solche spielereien.

      Als Build-tool nutze ich ANT und auch für das automatisierte deployment von apps auf (meistens meinen eigenen) Server.

      Deployment sieht meist so aus:
      Aktuell wird lokal die neue version gepackt, upload via ssh/scp.
      Das neue system in anderen ordner entpacken, build (ohne tests, etc, das passiert ja vorher via CI, oder auf einem 2ten vhost/server) laufen lassen (externe bibliotheken ins lib-verzeichnis symlinken oder kopieren, chmods setzen, configs/htaccess passend für das system generien, logs und manche Daten[uploads] der vorherigehenden version übernehmen [alles was halt nicht in der DB liegt oder so]), dann das alte system offline setzen, eventuelle Änderungen am DB-Design durchführen (Tabellen/Spalten/Inhalte verändern, erstellen, löschen oder was auch immer, recht einfach durch ausführen einer .sql-datei, hier will ich mir liquibase und dbbdeploy mal genauer anschauen), dann backup des alten systems (tar.gz mit datum) anfertigen, dann wird der alte ordner umbenannt und der neue in den alten umbenannt und der offline-status wieder aufgehoben.
      Bis auf die Änderungen am DB-Design kann ich also einfach nur durch umbennen des alten ordners schnell wieder auf die vorherige version zurück gehen (auch als ant-job hinterlegt, der via ssh einfach die ordner wieder umbenennt)


      So blub ... noch ein paar Leute die hier mal bissel was über ihren Build/Development/Deploy-Prozess erzählen wollen oder ihre verwendeten Tools vorstellen wollen ?
      [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
      | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

      Kommentar


      • #4
        nochmal ein *push*
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          Das einzige Tool das ich beisteuern kann ist nwire.
          Ansonsten besteht meine Umgebung aus dem ZendServer CE, netbeans & dem Zend Studio 7.

          Kommentar


          • #6
            Werde mir nwrite bei gelegenheit vielleicht mal anschauen, aber ein Switch zu Eclipse PDT oder Zend Studio kommt für mich eigentlich nicht in Frage für die Features.

            Was mich von der Demo her eher reizt wäre Code Bubbles:

            Code Bubbles Project: Rethinking the User Interface Paradigm of Integrated Development Environments

            Das hat mir richtig gut gefallen und auch wenn es einem anderen Zweck dient, durchaus interessant.
            [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
            | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

            Kommentar


            • #7
              Hi

              Habe dank diesem Thema auch mal Hudson, CodeSniffer, PDepend usw. ausprobiert und ich muss sagen, dass ich begeistert bin

              Mein Ablauf sieht inzwischen so aus:
              Ich programmiere die PHP Anwendungen in Eclipse, danach lade ich die geänderten Dateien per FTP auf mein Entwicklungssystem, dort sehe ich dann falls PHP Errors oder Notices usw. auftreten. Läuft dann alles soweit wie ich es mir vorgestellt habe, checke ich das ganze per SVN ein.
              Hudson schaut immer um Mitternacht, ob es Änderungen im SVN gibt, sind welche vorhanden, so wird ein Build gestartet mit den ganzen Tools(PHPunit, CodeSniffer usw.) Sollte der Build fehlschlagen, so erhalte ich eine Email, ansonsten wird eine Zip Datei erstellt (ohne die .svn Ordner) Die Zip Datei wird dann automatisch ins Testsystem entpackt um alles nochmal genau unter die Lupe zu nehmen (hier testen dann auch andere und nicht nur ich)
              Wenn alles passt, dann kommt die Zip Datei ins Produktivsystem.

              Im moment arbeite ich an einem Quellcode für ein Browsergame. Den Quellcode habe ich übernommen, deswegen herrschen im Moment viele Checkstyle Warnungen und duplizierter Quelltext, aber der Trend nimmt ab

              Kommentar


              • #8
                Hmm, viele dieser Softwares wirken wie Fremdkörper in der Entwicklung, gerade unter Windows ist das mit dem Scripting auch nicht so weit her. Da sind mir mache Features als IDE-Build-in tausendmal lieber.

                Gerade mit der Verwendung von Testsoftware habe ich auch so meine Probleme, was die SInnhaltigkeit anbelangt, das sollte man viell. mal in einem separaten Thread diskutieren.
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar


                • #9
                  Der Sinn von unittests ? Oder was genau fällt für dich unter Testsoftware ?
                  [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                  | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                  Kommentar


                  • #10
                    Zitat von nikosch Beitrag anzeigen
                    Hmm, viele dieser Softwares wirken wie Fremdkörper in der Entwicklung, gerade unter Windows ist das mit dem Scripting auch nicht so weit her. Da sind mir mache Features als IDE-Build-in tausendmal lieber.
                    Das klingt dann aber doch schon sehr danach dass das Betriebsystem einen ziemlich einschränkt, war für mich einer der Gründe mich anderswo umzuschauen und Linux zu nutzen.
                    Wenn man einen nicht allzualter Rechner hat, würde ich Leuten die das Problem auch haben, empfehlen sich mal Virtualbox in Kombination mit einem Linux und dem tollen Seamless-mode von Virtualbox anzuschauen, damit kann man qasi die Linux-GUI-Programme direkt im Windows ausführen ohne immer eine VirtualMachine im Vollbild auszuführen.
                    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                    Kommentar


                    • #11
                      Super Thread, wirklich. wird meine tägliche Arbeit sicher stark verändern.

                      Kommentar


                      • #12
                        Zitat von ragtek Beitrag anzeigen
                        Das einzige Tool das ich beisteuern kann ist nwire.
                        Ansonsten besteht meine Umgebung aus dem ZendServer CE, netbeans & dem Zend Studio 7.
                        Um den Thread wieder etwas zu beleben.

                        Bin seit einiger Zeit wieder "Back 2 the Roots" also xampp stattZendServer CE und nur mehr Netbeans als Editor.

                        Dazu kommt nun vermehrt der Einsatz von Selenium RC, da ich seit einiger Zeit als Alpha/Beta Tester für eine berühmte PHP Applikation unterwegs bin und so Sachen wie Installation, Benutzerregistrierung,.. automatisiert durchrennen lasse (Als Coder ist man für vieles viel zu faul, stimmts? ).

                        Dank der tollen deutschen Blogkultur, habe ich auch die Code-Analysetools zu lieben und nutzen gelernt. (zB cpd, code sniffer,...)
                        Natürlich sagen die nicht wirklich etwas über die Funktionalität der Applikation aus, aber man sieht, wie sauber etwas geplant/durchdacht & programmiert (zB dry, Coding Standards,..) wurde

                        Kommentar


                        • #13
                          Nutzt du Selenium rein im Browser via Selenium-IDE ?
                          Oder verbunden mit phpunit und tests die auch in der DB angaben überprüfen und so ?
                          [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                          | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                          Kommentar


                          • #14
                            Der großteil der Tests sind "Selenium IDE" Aufnahmen, die ich exportiert & etwas modifiziert habe (zB Screeenshot bei Fehler erstellen usw, Ausgabe überprüfen => mit DB Wert vergleichen)
                            Diese rufe ich dann über phpunit auf.

                            Steckt alles noch in Kinderschuhen, da ich zwar auch beruflich damit zu tun hatte, jedoch waren dort die Tests fertig und ich als Tester musste sie nur aufrufen. bzw minimal anpassen.

                            "Privat bzw für meine Projekte" benutze ich es leider nur Teilweise, da das ganze doch etwa komplex und Zeitintentsiv sein kann, wenn es um die Szenarioerstellungen geht.



                            Aber auf lange Sicht gesehen ist es extrem cool und man spart EXTREEEEM viel Zeit.

                            zB mache ich monentan folgendes:
                            Ich lade mir den neuesten vBulletin Build runter und starte ein Skript, dass mir das Archiv in den htdocs Ordner entpackt und mein Selenium Testcase (Installation) aufruft

                            Falls das alles erfolgreich war, wird das 2. Testcase (Einrichtung) aufgerufen.
                            Als Admin anmelden, Einstellungen vornehmen, Foren erstellen,Thread erstellen & dann abmelden.
                            3. Testcase: Testbenutzer registrieren, Themen erstellen, auf bestehende Themen antworten usw.....

                            Kommentar


                            • #15
                              Gerade das mit Screenshot bei Fehlern reizt mich, weil ich plane das ganze auch z.b. für cross-browser-tests via selenium-grid zu nutzen

                              Ich werde mich demnächst mal damit befassen müssen eine GUI auf meinen Server zu bekommen um darüber via Hudson automatisiert die tests laufen zu lassen, danach ist dann hier zuhause ein grid über virtualbox dran
                              [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
                              | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

                              Kommentar

                              Lädt...
                              X