[Git] Wordpress thema's en Bitbucket workflow

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00
Na heel wat thema's voor Wordpress gemaakt te hebben, is het nu echt eens tijd om dit met Version Control netjes te krijgen. Op dit moment staan de bestanden alleen op onze preview server en dat is niet zo veilig natuurlijk. Als het al veilig was, dan is het nog steeds niet handig, want wijzigingen worden niet opgeslagen. Tijd voor Git dacht ik! Bij Bitbucket een account aangemaakt, de private repo's daar bevallen me wel. Met mijn editor PhpStorm ben ik ook zeer tevreden en deze past prima in het Git plaatje.

Maar wat nu?

Wat doen we?

Van onze opdrachtgever krijgen we een Ontwerp. Het is de bedoeling dat wij hiervan een werkende website maken. Dat doen we door een Thema te ontwikkelen voor Wordpress. Over het algemeen zijn de opdrachten best divers, maar gemiddeld gezien zijn het allemaal vrij compacte bedrijfswebsites. Geen gekke fratsen dus en front-end/back-end wisselt zich gelijkmatig af.

In de thema's die we maken zitten enkele onderdelen die we vaker gebruiken. Zo is er bij elk thema een 'Parent Theme' zoals dat in Wordpress heet. Deze bevat in ons geval standaard onderdelen die we hergebruiken. Ook standaard zijn een aantal LESS bestanden die steeds weer gebruikt worden.

De beste manier

Wat is nu de beste manier om dit allemaal netjes te krijgen?

[list]
• Per thema een nieuw project in PhpStorm
• Per thema een nieuwe repo in Git


Obstakels

[list]
• Maar om nu telkens voor elk thema een project in te moeten stellen in PhpStorm, dat gaat (denk ik) veel tijd kosten en snel schakelen is belangrijk.
• Voor een thema zijn er dus ook LESS bestanden, die hoeven niet online te staan maar moeten gecompileerd worden.
• De 'parent theme' en LESS bestanden die vaker voorkomen en apart bijgewerkt moeten kunnen worden, hoe werkt dat in Git? Aparte repo met verwijzing?


Suggesties?

Ik ben niet op zoek naar een kant en klare oplossing. Eigenlijk alleen even een werkwijze waarmee het voor mij duidelijk is welke weg ik moet gaan bewandelen. Daarnaast ben ik ook wel benieuwd hoe jullie met Git werken. Hoe doen jullie dat met kleine projecten of word er alleen aan grote projecten gewerkt?

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 11-09 20:27

Matis

Rubber Rocket

Ik weet niet of parent thema's ook in parent mappen staan, maar anders zou je eens kunnen kijken naar git submodule.
Hierin kun je repo's in repos hebben, eventueel met fixed hashes.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00
Was net aan het lezen over submodules in Git. Er schijnen nogal wat do's en vooral dont's te zijn rondom deze feature.

Acties:
  • 0 Henk 'm!

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024

iH8

Yeoman generator voor Wordpress is een mooie tool, denk dat je daar veel inspiratie uit halen kunt.

http://wesleytodd.com/201...erator-for-wordpress.html
https://github.com/wesleytodd/YeoPress

Aunt bunny is coming to get me!


Acties:
  • 0 Henk 'm!

  • Archiebald
  • Registratie: Juni 2006
  • Laatst online: 03-09 02:09
Je wilt de bestanden uit de 'parent theme' ook gaan aanpassen in elk aparte thema? Wil je de aanpassingen niet los houden van de basis? Zo kan je de basis op elke thema updaten zonder er eerst handmatig na te kijken welke custom wijzigingen er zijn in dat thema

Met git heb ik te weinig ervaring om je te adviseren of je Fetch & Rebase of Pull moet gebruiken. Hier heb je wel meer informatie: http://kentnguyen.com/dev...d-git-practices-for-team/. Zelf gebruiken wij Fetch & Rebase.
Submodules wil je niet aan beginnen: http://codingkilledthecat...uldnt-use-git-submodules/

Ik zou persoonlijk niet met meerdere repo's werken, maar juist met branches.
In de master branch wil je eigenlijk de basis hebben staan voor een nieuw project, elke keer als je een nieuw project nodig hebt begin je een nieuwe branch, die afgeleid is van de master branch.

Voordeel daarvan is dat je de basis gescheiden houdt van de project branches en alle custom wijzigingen in de projecten. Wijzig je iets in de basis, dan merge je gewoon de basis weer in je project branch. Dan moet je natuurlijk niet je project branch terug mergen naar de master, want dan is je basis project niet meer basis ;)

Qua visualisatie van de git branches is Git extensions (https://code.google.com/p/gitextensions/) wel een goede tool, je kunt er ook mee committen, fetch & rebase en pushen. Maar ik vind dat persoonlijk niet fijn. Daarvoor gebruik ik TortoiseGit (https://code.google.com/p/tortoisegit/)

Verder vraag ik me af hoe dat gaat met het compileren van de LESS bestanden, daar heb ik totaal geen ervaring mee. Voor het automatisch compileren, automatisch deployen & automatisch testen gebruiken wij http://www.jenkins-ci.org/. Maar wij werken niet met wordpress of php, maar met C# :)

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00
iH8 schreef op dinsdag 13 augustus 2013 @ 16:35:
Yeoman generator voor Wordpress is een mooie tool, denk dat je daar veel inspiratie uit halen kunt.

http://wesleytodd.com/201...erator-for-wordpress.html
https://github.com/wesleytodd/YeoPress
Ben denk ik niet op zoek naar een kant en klare tool. Geeft me weinig flexibiliteit denk ik. Daarnaast is m'n ontwikkel traject ook weer niet zo groot, moet gewoon even een duidelijke workflow vormen, met bepaalde tools, waar ik helaas zelf niet helemaal uit kom.

---
Archiebald schreef op dinsdag 13 augustus 2013 @ 23:43:
Je wilt de bestanden uit de 'parent theme' ook gaan aanpassen in elk aparte thema? Wil je de aanpassingen niet los houden van de basis? Zo kan je de basis op elke thema updaten zonder er eerst handmatig na te kijken welke custom wijzigingen er zijn in dat thema.
Nee, de parent theme moet gebruikt kunnen worden onafhankelijk van de child theme. Zou een eigen repo moeten hebben (denk ik) en alleen af en toe wat updates moeten krijgen. In de basis blijft the parent theme ongewijzigd en bevat slechts wat standaard functies en tools.
Met git heb ik te weinig ervaring om je te adviseren of je Fetch & Rebase of Pull moet gebruiken. Hier heb je wel meer informatie: http://kentnguyen.com/dev...d-git-practices-for-team/. Zelf gebruiken wij Fetch & Rebase.
Submodules wil je niet aan beginnen: http://codingkilledthecat...uldnt-use-git-submodules/
Zit nu eigenlijk gewoon in Bitbucket en gooi de commands in de commandline, werkt opzich best. Daarnaast kan ik in PhpStorm gewoon commiten en dergelijke.

Maar oké, pull --rebase, dat klinkt wel logisch. Moet ik me toch eens verder op inlezen.
Ik zou persoonlijk niet met meerdere repo's werken, maar juist met branches.
In de master branch wil je eigenlijk de basis hebben staan voor een nieuw project, elke keer als je een nieuw project nodig hebt begin je een nieuwe branch, die afgeleid is van de master branch.

Voordeel daarvan is dat je de basis gescheiden houdt van de project branches en alle custom wijzigingen in de projecten. Wijzig je iets in de basis, dan merge je gewoon de basis weer in je project branch. Dan moet je natuurlijk niet je project branch terug mergen naar de master, want dan is je basis project niet meer basis ;)
Dat is wel een goed idee. Op de basis een nieuwe branch maken per thema dus. Gewoon de basis pullen bij begin van het project en dan pushen naar nieuwe branch even in Git termen.
Qua visualisatie van de git branches is Git extensions (https://code.google.com/p/gitextensions/) wel een goede tool, je kunt er ook mee committen, fetch & rebase en pushen. Maar ik vind dat persoonlijk niet fijn. Daarvoor gebruik ik TortoiseGit (https://code.google.com/p/tortoisegit/)
Ik lees overal dat je beter de command line kunt gebruiken voor Git shizzle en qua visualisatie heb ik deels PhpStorm en Bitbucket natuurlijk. Maar tortoisegit is een goed alternatief als het niet wil.
Verder vraag ik me af hoe dat gaat met het compileren van de LESS bestanden, daar heb ik totaal geen ervaring mee. Voor het automatisch compileren, automatisch deployen & automatisch testen gebruiken wij http://www.jenkins-ci.org/. Maar wij werken niet met wordpress of php, maar met C# :)
Een deploy strategie is wel leuk natuurlijk, maar voor de kleine projecten waar ik me mee bezig houd is het denk ik te veel werk. Je moet dan per project iets opzetten, terwijl een project (thema) soms niet meer dan 2 dagen werk is.

Wil nog wel toe naar een leuke dev -> stage -> deploy manier, maar dat is erg lastig. De klanten hebben verschillende hostings, al komt het natuurlijk wel steeds op FTP aan. Daarnaast word nu alles 'online' ontwikkeld, de klant kan meekijken.

---

Lastig pakket dit, je hebt gewoon Wordpress als basis en daar ontwikkel je een thema voor. Onafhankelijk van het thema heb je dus Wordpress en enkele plugins die niks te maken hebben met wat je ontwikkeld en gewoon los staan. Ze kunnen dus updates krijgen en veranderen.

Gisteren een aantal dingen bekeken wat betreft thema's ontwikkelen voor Wordpress. Echter geen sluitende voorbeelden, veel oplossingen voor Git wel, ook complete WAMP/LAMP oplossingen, maar dat is me allemaal te lomp.

In de werkmap die we voor een project hebben, komt gewoon een mapje 'dev' met daarin 'less' voor alle LESS bestanden en een mapje 'theme' voor het daadwerkelijke theme. Dit moet beide gewoon in Git zitten en het liefst in een project in PhpStorm. DIe laatste gaat vreemd met projecten om vind ik zelf maar goed.
Pagina: 1