it-swarm.com.de

Welchen Prozess verwenden Sie für die WordPress-Entwicklung?

Ich bin daran interessiert, wie andere Leute Themen und Plugins für WordPress entwickeln. Für mich schneidet der In-Browser-Editor im Admin-Bereich einfach nicht ab. Momentan verwende ich nur ein IDE mit einem PHP-Plugin (NetBeans), rufe mein Entwicklungs-Webverzeichnis von meinem Server ab, bearbeite es dort, drücke es zum Testen hoch und dann Zuwandern, um zu leben.

Ich suche nach Möglichkeiten, wie andere Benutzer ihre Tools ihrer Wahl verwenden, um Workflows für das Entwickeln, Testen und Bereitstellen von Themen, Plugins und Testen der neuesten Versionen von WordPress mit diesen zu verwalten, bevor sie live gehen.

Ich habe dies zu einem Community-Wiki gemacht, damit andere Leute an diesem Entwicklungsprozess teilnehmen können. Ich erwarte nicht, dass Sie hier die einzig richtige Antwort finden - Ihr Prozess ist Ihr eigener, und ich würde nicht erwarten, dass das, was Sie tun, nur für mich selbst oder für jemanden anderen funktioniert. Ich bin nur daran interessiert, meine Fähigkeit zu verbessern, Plugins und Themen zu entwickeln, indem ich sehe, was für andere Leute funktioniert oder nicht.

In einer weiteren Frage wird auf bestimmte Software-Tools zur Unterstützung der WordPress-Entwicklung eingegangen . Hier bin ich auf der Suche nach mehr Prozessen und Methoden, die unabhängig von Werkzeugen angewendet werden können, mit Ausnahme bestimmter Aufgaben, die möglicherweise nur in einer bestimmten Familie von Werkzeugen ausgeführt werden.

37
Thomas Owens

Ich erstelle hauptsächlich ganze Websites und Plugins und stelle sie bereit. Mein Workflow ist sehr rubin- und gitlastig.

Um mit einem neuen Projekt zu beginnen, habe ich ein Shell-Skript, das sich um das Einrichten eines neuen vhost und das Auschecken des neuesten WordPress-Tags (aus unserem eigenen Git-Repository, das svn verfolgt) kümmert.

Die Grundform einer ganzen Website ist ein Git-Repository bei wp-content. Das enthält ein Capfile (das Makefile-Äquivalent von capistrano) und eine YAML-Konfigurationsdatei, die zusammen für die Bereitstellung sorgen ( http://github.com/dxw/wp-capistrano ). Außerdem füge ich in diesem Repository das Theme und die Plugins als Git-Submodule hinzu (ja, wir verwalten Git-Repositories auch für Plugins von Drittanbietern - wir verwenden gerne die neueste Version, die wir persönlich getestet haben).

Für das Thema habe ich ein Tool/Framework zur Codegenerierung ( github.com/dxw/wp-generate ). Es bedeutet weniger darüber nachzudenken, wohin der Code gehen soll, und es gibt eine natürliche Methode zur Trennung zwischen der Ansicht und dem Modell/Controller.

Beim Schreiben von Plugins verwende ich cucumber/webrat, um eine testgetriebene Entwicklung durchzuführen ( github.com/dxw/cucumber-wordpress ).

Und für die Migration von Entwicklungsdatenbanken in die Produktion muss normalerweise nur der Speicherauszug kopiert werden (WP_SITEURL und WP_HOME werden von capistrano auf den Staging-/Produktionsmaschinen festgelegt, sodass kein Suchen/Ersetzen erforderlich ist).

Ich kann mir nicht vorstellen, wie viele Stunden ich mit diesen Skripten gespart habe.

20
tomdxw

@Thomas Owens Diese Frage überschneidet sich etwas und dupliziert die Frage " Software für WordPress Theme/Plugin-Entwicklung? ." Ich bin nicht sicher, ob wir schließen sollen, aber es scheint ein etwas anderer Fokus zu sein. So...

Mac OS X

Hier ist mein unverzichtbares Toolset für Max OS X (immer auf der Suche nach besser.) Hinweis: Ich habe NetBeans ausprobiert und aufgegeben. Zu träge und zu wenige Funktionen.

Windows Vista

Als ich unter Windows Vista war, war mein wesentliches Toolset :

Codebereitstellung/Datenmigration zum Wechseln von Domänen

Ich bin mir nicht sicher, ob dies genau das ist, wonach Sie suchen, aber ich entwickle ein Plugin, um Migrationen zwischen lokalem Entwickler-Server, Testserver und Bereitstellungsserver zu vereinfachen. Ich habe hier darüber geschrieben:

Hoffe das hilft

-Mike

6
MikeSchinkel

Dies ist eine Workflow-Antwort, die nicht spezifisch für ein IDE oder Plugin ist.

Eine Lösung, die für die Plugin-Entwicklung sehr gut geeignet ist, besteht darin, mit einem lokalen Apache-Webserver zu beginnen, auf dem jede WordPress-Variante in einem Unterordner installiert ist.

Speichern Sie die Arbeitskopien Ihres WordPress-Plugins/Themes an einem separaten Ort außerhalb des lokalen Server-Stammverzeichnisses. Erstellen Sie einen Symlink zu dem entsprechenden Trunk/Tag/Zweig im Ordner/wp-content/plugins jeder WordPress-Variante.

Wenn Sie das Plugin in Ihrer IDE bearbeiten, werden die von Ihnen vorgenommenen Änderungen natürlich in jeder WordPress-Installation angezeigt, sodass Sie problemlos mehrere Variationen von WordPress testen können.

Grundsätzlich können Sie eine Browserregisterkarte für jede lokale WordPress-Variante öffnen und jede einzelne testen, während Sie an einem einzelnen Projekt und einer einzelnen Dateibasis arbeiten.

Wenn Sie eine IDE verwenden, die SVN und FTP unterstützt, müssen Sie lediglich Ihre Arbeitskopie bearbeiten und Ihre Änderungen in das Repository zurückschreiben.

Als IDE macht Coda das für mich, aber ich mag auch NetBeans und Eclipse.

Sobald Sie zufrieden sind, dass Ihr Plugin funktioniert und diese Änderungen in Ihr Repository übernommen haben, können Sie Ihr WordPress-Projekt öffnen und das geänderte Plugin direkt auf Ihrer Live-Site veröffentlichen.

5
leetagg

Ich habe ein relativ unkompliziertes Setup, das sich seit Beginn meines heutigen Jobs vor ca. 2,5 Jahren entwickelt hat.

Entwicklung

Ich entwickle alles über SSH mit Vim inside GNU screen . Vim Plugins beinhalten:

Vertikale Teilungen und :set hidden sind unerlässlich. Ich bevorzuge auch ein 256-Farben-Terminal ( iTerm unter Mac OS X) mit dem Railscasts Farbschema.

Wir haben auch langsam dBug an unsere Bedürfnisse angepasst. Schöner Ersatz für print_r() und var_dump(), wenn Sie wissen, dass die Variable ein Array oder ein Objekt ist.

Bereitstellen

Gegenwärtig arbeite ich nicht an vielen öffentlichen Plugins/Themes, daher teste ich die Pluginkompatibilität mit mehreren Versionen von WordPress nicht. Ich codiere auf dem Entwickler-Server und verschiebe diesen Code über Subversion in die Produktion.

3

WordPress Theme Entwicklungsprozess

  • Konvertieren Sie Mock Flow Wire Frames in XHTML und CSS

  • Stecken Sie XHTML in die Vorlagendatei master.php und konvertieren Sie sie in Template-Tags und WP -Funktionen

  • Teilen Sie master.php in die verschiedenen Template-Dateien auf, zB: header.php, index.php, sidebar.php und footer.php

  • Schreiben Sie alle benutzerdefinierten Abfragen und Funktionen, die möglicherweise benötigt werden

  • Stecken Sie das CSS-Layout ein und fügen Sie div {outline:1px solid red;} hinzu, um das Layout zu optimieren4.

  • Laden Sie den Theme-Ordner zu Test- und Entwicklungszwecken in WordPress hoch

WordPress-Entwicklungstools

  • Aptana Studio WorkPlace-Code-Editor mit integriertem FTP

  • Kitt

  • doppelmonitore 1920 x 1200 mit offenem Browser auf dem einen und Code-Editor auf dem anderen

  • Wacom Intuis 4 Tablette

  • Firebug mit Yslow- und Google Page-Geschwindigkeit

3
Chris_O

Mein Arbeitsablauf ist ziemlich einfach. Ich halte mit 4 Umgebungen Schritt. Testen, Entwickeln, Inszenieren und Produzieren.

Arbeitsablauf

Ich benutze git für meine Versionskontrolle. Ich ignoriere die Datei wp-config.php, damit diese Datei nicht überschrieben wird, wenn ich über die verschiedenen Speicherorte schiebe und ziehe. Ich verwende unfuddle als öffentliches/zentrales Repository für andere, um Push and Pull von.

Dies scheint ziemlich gut zu funktionieren. Ich werde mich so oft wie möglich dafür einsetzen, während ich am Testen arbeite. Mindestens einmal am Tag, wenn nicht sogar mehr, synchronisiere ich mich mit unfuddle und lasse den Entwicklungsserver die Änderungen einspielen. Ich versuche, keine direkte Arbeit auf dem Server zu erledigen, daher nehme ich hauptsächlich Änderungen vor. Wenn wesentliche Datenbankänderungen vorgenommen wurden (neue Plugins, aktualisierte Inhalte usw.), werde ich diese aus meinen Tests entfernen. Erstellen Sie eine Sicherungskopie der Entwicklung und importieren Sie den Speicherauszug.

Ich benutze den gleichen Prozess für die Inszenierung. Das Staging befindet sich auf demselben Server wie die Produktion. Überprüfen Sie den Poliervorgang und stellen Sie sicher, dass alle Einstellungen und Module auf dem Produktionsserver funktionieren. Wenn ich bereit bin, sichere ich alle Produktionsdateien und die Datenbank und kopiere die Dateien und die Datenbank aus dem Staging.

Da wp-config.php nicht in git enthalten ist, ist es ziemlich einfach, Dinge zu pushen und zu ziehen. Wenn ich vom Staging in die Produktion wechsle, kopiere ich die Dateien und verwende kein Git. Daher muss ich sicherstellen, dass die Datei wp-config.php korrekt ist.

Ich habe ein ähnliches question gestellt, und ich werde untersuchen, wie ich dieses Plugin verwende.

Ich habe auch darüber nachgedacht, Capistrano zu verwenden. Erstellen eines sehr detaillierten Migrationsskripts, das alle Dateien und Datenbanksicherungen/-migrationen durchläuft und verarbeitet sowie die Dateipfade und URLs aktualisiert.

Werkzeuge

  • Textmate für meinen Editor, obwohl ich anfange, MacVim zu verwenden. Ich benutze vim unter Linux.
  • Sequel Pro zur Datenbankmanipulation. Wenn ich keine Verbindung herstellen kann, verwende ich PHPMyAdmin
  • Übertragen Sie für FTP, wenn ich es brauche.
  • git für die Revisionskontrolle. Meistens über die Befehlszeile, obwohl ich den Client in Textmate und GittiApp ein bisschen benutzt habe.
3
Ryan Gibbons

Eine Sache, die mir hilft (besonders wenn ich an mehreren Client-Themen arbeite), ist die Verwendung einer WordPress Multisite-Installation auf meinem Entwickler-Server. Auf diese Weise habe ich so viele offene Jobs wie nötig und mache mir keine Sorgen, dass Kunde A das Thema von Kunde B sieht. Kombinieren Sie dies mit einem umfassenden Paket mit Beispielinhalten, das ich jedes Mal lade, wenn ich eine neue Site erstelle, und Sie haben ein fantastisches Entwicklungssystem.

1
Keith S.

Ich verwende Versionskontrollsysteme und automatisierte Tests, um vom In-Place-Hacking auf dem Server in den Eingeweiden eines Lebenssystems zu strukturierteren Entwicklern/Tests/Phasen/Lebenszyklen zu gelangen. Es kommt nur auf den Job an.

Außerdem melde ich Fehler zurück an das WordPress-Projekt, wenn ich sie überfliege.

Für die Plugin-Entwicklung versuche ich, das Rad nicht ständig neu zu erfinden, um neue auf der Basis bestehender Prinzipien und Muster zu bauen.

0
hakre

Hier ist mein Workflow:

  • Ich beginne mit der Erstellung des Projektverzeichnisses, sobald ich die Anforderungen und das Design der Website erhalte.
  • versionieren Sie den Static und den theme/plugin Ordner in Dynamic Ordnern mit Git.
  • erstellen Sie einen virtuellen Host für das Projekt. Ich folge dieser Konvention:

    http://project1.dev/

    http://project1.static.dev (optional)

  • Normalerweise folge ich dieser Ordnerorganisation:

    Projects
           Project1Name
                       Docs //Requirements docs, emails, other related documents. 
                            //This directory may contain directories with  names as dates
                            //(e.g 2014-01-01) to stay super organized :)    
                       Designs //All PSDs go here  
                       Data  //Database backup for the project,
                       Site
                           Dynamic //WordPress generally
                           Static //I don't always create a static version. I did a couple  
                                  //of times in the past. I use the same structure inside
                                  //the theme or plugin I'm developing
                                 js
                                 css
                                 img
    
           Project2Name and so on ...
    

Mir ist bewusst, dass ich noch kein build-Tool täglich verwende, was mir ein schlechtes Gefühl gibt.

Aber ich benutze das ANT-Build-Tool für mein Sprite2CSS-Projekt und ein paar PHP Skripte für ANT.

Werkzeuge


Egal, ob ich unter Windows oder Ubuntu bin, ich verwende Folgendes:

  • Netbeans + SublimeText2 + Notepad ++
  • WAMP - (PHP)
  • FakeMail
  • Git
  • Chrome und DevTools + Firefox mit Firebug und Safari + IE zum Testen
  • YSlow!
  • Das in Filezilla/WinSCP/NB integrierte FTP
  • Cygwin + Eingabeaufforderung
  • Komponist
  • NodeJS + NPM
  • SQLYog Community Edition + PHPMyAdmin

Ich bin offen für Vorschläge zur Verbesserung meines Workflows.

0
Junaid Qadir

Ich arbeite unter Windows mit Denver , FileZilla, Notepad ++, Firefox Firebug und anderen Inspektoren (Links oben), cPanel und dbForge Studio für MySQL

0