WordPress utvikling med VVV

Japh, i sin tidligere artikkel, har forklart begrunnelsen - og til slutt overbevist oss - å sette vårt utviklingsmiljø så nær den eksterne webserveren ved hjelp av Vagrant. Artikkelen er mer enn to år gammel, men ideen er fortsatt aktuell i dag. Enda mer, har Vagrant nylig fått traction i WordPress-fellesskapet med en spesiell Vagrant-konfigurasjon kalt VVV, kort for Varying Vagrant Vagrants.

VVV er en forhåndsinnstilling av Vagrant-konfigurasjonen rettet mot WordPress-sentrale prosjekter som å utvikle et tema, et plugin eller bidra til WordPress Core. VVV er også fullpakket med en håndfull verktøy som WP-CLI, PHP Code Sniffer og Composer som overlater våre utviklings arbeidsflyter.

Ikke desto mindre har bruk av et program som MAMP, WAMP eller XAMPP gitt et tilstrekkelig praktisk nivå for mange utviklere; disse verktøyene har kanskje betjent dem så godt at det ikke virker nødvendig å migrere til VVV.

Av den spesielle grunnen er denne opplæringen rettet mot de som har lenge vært brukere av disse tradisjonelle stakkapplikasjonene for å utvikle WordPress, og nå føler at appen ikke lenger klarer å håndtere de mer omfattende og komplekse prosjekter.

Kanskje du leser et sted om Vagrant som kalles et godt alternativ, men du vet ikke hvor du skal begynne, og om Vagrant er det rette verktøyet for deg. Så før vi dykker videre, vil vi skissere vårt prosjektutviklingsscenario der bruk av VVV vil være hensiktsmessig.

La oss begynne.

Prosjekt Briefing

Først av alt, har vi et team utviklere som hjelper oss med dette prosjektet. Teamet vårt er distribuert over hele verden, og alle har sin egen preferanse - noen bruker Windows, mens andre bruker OS X. Vi vedtar Vagrant og VVV slik at alle har samme miljø og gjør testutgangen mer relevant.

Prosjektet vårt er å skape et tema og et plugin som vi vil sende til deres respektive WordPress.org-depot.

Temaet bør være kompatibelt med noen populære plugins som Jetpack, WooCommerce, EDD og BBPress. Vi vil også teste pluginet mot en rekke andre plugins, noe som ikke sikrer konflikter eller feil når de er aktive sammen.

Videre skal temaet og pluginet også være kompatibelt med de nyeste samt to tidligere versjoner av WordPress, og bør være klar for fremtidige WordPress-utgivelser ved å teste dem gjennom Beta-versjonen.

Følgende tabell viser hvor vårt tema og plugin skal være kompatibelt med WordPress-versjoner, samt med en rekke plugins.

kompatibilitet: Acme-StoreFront (tema) Acme-LocalCurrency (plugin)
WordPress 4.2 -
WordPress 4.3 -
WordPress Latest
WordPress Beta
jetpack -
bbPress -
Easy Digital Downloads (EDD)
WooCommerce

Videre kan vi ha en lokal nettside på jetpack.wordpress.dev som vil være vert for temaene (eller plugin) som er avhengig av en eller flere av Jetpack-modulene som uendelig rulling og deling.

For å unngå mulige forstyrrelser fra andre plugins, kobler den aktive pluginene inn jetpack.wordpress.dev er bare Jetpack, med noen unntak for noen få støtte plugins for utvikling som Query Monitor, VIP Scanner og Debug Bar.

Til slutt kan vi også lage woo.wordpress.devbbp.wordpress.dev, og så videre for å bygge og teste våre prosjekter rundt disse plugins funksjonalitetene.

Hva trenger du å ha installert?

  • Git: I denne opplæringen bruker vi hovedsakelig Git til å klone et repository. Vanligvis bør du imidlertid bruke den til å spore og administrere prosjektendringene.
  • Terminal: De fleste av våre operasjoner gjennom hele denne opplæringen vil bli gjort i Terminal. Windows 10 brukere vil endelig kunne kjøre Bash-skript gjennom kommandoprompt. Windows 8 eller 7 Brukerne kan bruke Bash Git, som er forhåndsinstallert gjennom Git installasjonsprogrammet, Cygwin. Cmder kan være et godt alternativ.
  • Hjemme brygget: for OSX-brukere anbefaler jeg sterkt at du installerer Homebrew og Homebrew Cask, noe som gjør at du installerer noen få ting i denne opplæringen en bris. Her er en opplæring fra søstersiden, Computer Tuts +, Perfekte konfigurasjoner med Homebrew og Cask.

Nå som vi har en grov ide om hva vi skal gjøre, og du har disse verktøyene installert, vil vi nå fortsette å sette VVV opp og ned. La oss komme i gang!

Trinn 1: Installer VirtualBox

Første ting først, vi trenger en virtuell maskin (VM) for å være vert for våre utviklingsmiljøer opprettet gjennom Vagrant. I denne opplæringen velger vi VirtualBox; Det er gratis og fungerer på tvers av plattformen. Et installasjonsprogram er tilgjengelig for hver plattform, Windows, OSX og et par Linux-distribusjoner - på nedlastingssiden.

Start installasjonsprogrammet og følg trinnene helt til slutten av prosessen. Alternativt kan OS X-brukere installere VirtualBox gjennom Homebrew Cask, som gjør at du kan installere VirtualBox mer bekvemt med en enkelt kommandolinje som følger.

brew cask installere virtuell boks

Når VirtualBox er installert, noe som kan ta litt tid, fortsetter vi å installere Vagrant.

Trinn 2: Installer Vagrant

Tilsvarende er en Vagrant installer tilgjengelig for OS X, Windows og Linux. Last ned en til plattformen din og følg trinnene gjennom. OS X-brukere kan installere det gjennom Homebrew Cask med følgende kommandolinje.

brew cask install vagrant

Når det er installert, bør du få tilgang til vagrant CLI.

Hent installert Vagrant versjon i OSX Terminal

Trinn 3: Installer Vagrant Plugins

Installere følgende vagrant plugins er valgfritt, men det er vanligvis en god ide å ha dem installert for å strømlinjeforme prosessen med å få VVV utviklingsmiljø, inkludert de lokale nettstedene, opp og ned.

Vagrant Hosts Updater: Denne plugin vil tillate Vagrant å oppdatere verter fil for å registrere domenenavnet for de lokale nettstedene. Ellers må vi legge til det på egen hånd, noe som høres litt ubeleilig ut.

Kjør følgende kommando for å installere plugin:

vagrant plugin installere vagrant-hostsupdater

Vagrant Triggers: Denne plugin vil tillate VVV å automatisere en rekke prosesser som sikkerhetskopiering av databaser. For å installere det, kjør:

vagrant plugin installere vagrant-triggers

Forutsetningene-VirtualBox og Vagrant sammen med plugins-er satt. Så vi kan begynne å installere VVV.

Trinn 4: Installer VVV

Først klon VVV fra GitHub-depotet til en lokal katalog.

git klone git: //github.com/Varying-Vagrant-Vagrants/VVV.git

Når klonen er på plass, navigerer du til katalogen hvor den ligger. Deretter får du det oppe med følgende kommandolinje:

cd vvv; vagrant opp

VVV vil laste ned og installere Ubuntu som det virtuelle operativsystemet som vil være vert for våre lokale nettsteder. På et tidspunkt må du kanskje også skrive inn passordet ditt for å la Vagrant skrive vertsfilen din.

VVV initialisert for første gang

Husk, dette er første gang vi setter VVV opp og går. Prosessen vil ta ganske lang tid; Det kan ta 30 minutter til en time eller så for å fullføre. Ta en spasertur, en kopp kaffe, eller ta litt hvile mens prosessen pågår.

Når VVV er oppe, gir den oss et par WordPress-standardinstallasjoner, som følger:

  • local.wordpress.dev: den siste stabile versjonen av WordPress.
  • local.wordpress-trunk.dev: Det er WordPress nattlig utgivelse som inneholder grovkanten. Hvis du logger deg på Dashboard, finner du noe i tråd med Du bruker en utviklingsversjon (4.5-RC1-37169) i bunnteksten.

Logg inn på disse nettstedene med admin som brukernavn og passord som passordet.

Trinn 5: Legg til et nytt WordPress-prosjekt i VVV

Nå som vi har VVV oppe, kan vi sparke våre nye prosjekter. Vi skal lage et eksempeltema og et plugin. Og det har alltid vært min preferanse å starte et tema med Underscores og å bruke WPPB for et plugin.

Vi legger til disse kjelen i deres respektive katalog i / Wp-content / katalog av local.wordpress.dev, ligger ved VVV-katalogen / www / wordpress-default / wp-content /.

Fortsett med å utvikle temaet og plugin-modulen; legg til noen funksjoner, legg til en Innstillingsside for temaet, legg til dypere integrasjon med Customizer for temaet, og til slutt gjøre dem klar til WordPress neste utgivelser.

Envato Tuts + har utgitt mange ressurser som kan komme til nytte under utviklingen. Følgende er et utvalg av mine favoritter:

  • Bygg et WordPress-tema på 60 sekunder
  • En rask guide til WordPress Customizer-grensesnittet
  • Tuts + Guide til malemerker
  • The Beginner's Guide til WordPress Taxonomies
  • Introduksjon til å lage din første WordPress Widget
  • Tips for beste praksis i WordPress Development

Opprette et nytt lokalt nettsted med VV

Som vi nevnte tidligere, skal vi lage noen flere lokale nettsteder der vi skal utvikle vårt tema og plugin for integrasjon med flere plugins som Jetpack, WooCommerce, EDD og BBPress. Vi skal også sette et par nettsteder for å teste våre prosjekter mot WordPress tidligere versjoner, i dette tilfellet 4.3 og 4.2. På dette punktet har vi bare hatt local.wordpress-trunk.dev up, som er vert for WordPress nattlig, beta eller release-kandidat (RC) versjon.

Opprette og sette opp et lokalt nettsted tar vanligvis flere trinn. Først må vi laste ned WordPress-kopien, pakke ut og plassere den i roten til vår lokal vert, opprett en database, kjør WordPress installasjonen, og endre vertsfilen for å registrere domenenavnet. Hvis vi tar prosessen i å skape, si tre eller flere lokale nettsteder, vil vi snart finne prosessen ineffektivt tidkrevende.

Med VVV og utvidelsen heter VV, kort for Variabel VVV, Vi vil være i stand til å være mer produktive med mindre innsats. La oss ta en titt på hvordan du distribuerer VV.

Installere VV

Siden prosessen med å installere VV i OS X og Windows varierer, er denne delen delt i to seksjoner. Du kan hoppe umiddelbart til delen av plattformen du bruker.

Installere VV i OS X

Den enkleste måten å installere VV på OSX er gjennom Homebrew. Skriv bare følgende kommando.

bryg installa bradp / vv / vv

Installere VV i Windows

I Windows må du først klone VV-depotet, et sted i datamaskinkatalogen din.

git klon https://github.com/bradp/vv.git vv

Da trenger vi Windows for å gjenkjenne vv kommando.

For å gjøre det, høyreklikk Min datamaskin eller Denne PC og velg Eiendommer… . Så gå til Avanserte systeminnstillinger> Miljøvariabler. Velg "Path" fra listen System variabel og klikk Redigere… .

Legg til vv katalogbanen du klonte før. For eksempel:C: \ Users \ thoriq \ nettsteder \ vv.

Når installert, bør vi få tilgang til vv kommandoen globalt. Kommandoen vil tillate oss å sette inn nye WordPress-installasjoner opp og ned, blant annet som du kan finne detaljene i gjennom vv - hjelp kommando.

I OS X: VV CLI-liste over kommandoer

I Windows er CLI tilgjengelig både gjennom Kommandoprompt (cmd.exe) og Bash Git.

Opprette et nytt WordPress-nettsted

VV har gjort installasjon av et nytt WordPress-nettsted like enkelt som å skrive følgende kommando:

vv opprette

Når det er utført, vil det stille noen spørsmål underveis for å konfigurere det nye nettstedet, nemlig:

1. Oppgi nettstedskatalogen

For MAMP-brukere ligner det på å opprette en ny mappe i MAMP-dokumentrotten på / MAMP / htdocs /. Dette er mappen der alle nettstedets eiendeler ligger. I dette trinnet skriver du inn navnet katalogen uten mellomrom, helst i små bokstaver, for eksempel:

2. Oppgi domenet

Sett domenet for vår nye nettside. Et domene for en lokal nettside slutter ofte med enten .dev eller .lokal. I dette tilfellet vil jeg nevne vår 42.wordpress.dev. Det er et underdomene med nummeret 42, som refererer til WordPress versjonen, 4.2.x, som vi skal installere.

3. Sett WordPress-versjonen

Her installerer vi WordPress 4.2.8, som er den siste iterasjonen innen 4.2-grenen. Den komplette listen over WordPress-utgivelser finnes på Utgivelsesarkiv-siden.

4. Aktiver multisite

Det spør oss om vi vil aktivere WordPress Multisite-modus. Vi velger N.

For tiden er det ikke topp prioritet å støtte WordPress Multisite for våre temaer og plugins. Hvis vi noensinne trenger å bygge og teste prosjekter under multisite-miljøet, kan vi senere opprette et annet nettsted under et nytt domene, f.eks.. mu.wordpress.dev.

5. WP-innholdsaktiver

The WordPress wp-innhold kataloget er vanligvis vert for en rekke underkataloger, for eksempel temaer, plugins og opplastinger av kataloger. Noen ganger kan jeg også lage noen ekstra mapper for å lagre noen vilkårlig filer. Hvis du har et forhåndsinnstilt innhold som er hostet på et Git-depot, kan du skrive inn nettadressen og la VV klone depotet.

For nå, la vi det tomt.

6. Importer SQL

Vi har ikke en SQL-database å importere, så vi vil også la denne ledelsen være tom. Men hvis du har en, spesifiser du katalogen hvor SQL-filen ligger, for eksempel: /Sites/db/wp.sql.

7. Standard Temaer og Plugins

WordPress kommer med standardtemaene (for eksempel Tjuefifteen, Tjuefixen osv.) Og plugins (Akismet og Hello Dolly) som vi ofte ikke vil bruke. I dette trinnet kan vi passere y til å spørre VV om å fjerne dem helt.

8. Dummy innhold

Vi kan fortelle VV å installere prøveinnhold fra WPTest. Det er et omfattende sett med innhold som inkluderer innlegg, sider og kommentarer. Dette innholdet kommer til å være nyttig for å finne eventuelle feiljusteringer, kompatibilitetsproblemer eller feil i våre temaer og plugins. Deretter skriver du y.

9. WP_DEBUG

Vi skal definitivt aktivere WP_DEBUG for å la WordPress skrive ut eventuelle PHP-feil under utviklingen. Deretter skriver du y på spørsmålet.

10. Bekreftelse

Til slutt, bekreft alle definerte konfigurasjoner er riktige før VV fortsetter med installasjonen. Hvis alt ser bra ut, skriv inn y å fortsette. Hvis ikke, skriv inn n å avbryte operasjonen, og du kan gjenta vv opprette fra starten.

Når en gang er ferdig, viser VV siden og legitimasjons-brukernavnet og passordet - for å logge inn som følger.

Gjenta disse trinnene for å installere de andre nevnte nettstedene i delen "Prosjektoppsummering" i denne opplæringen.

Organisere og synkronisere prosjekter

Vi har nå flere nettsteder med varierende miljøer for å teste våre prosjekter-temaer eller plugins. Antallet av våre nettsteder vil vokse over tid, opp til det punktet hvor kopiering av prosjektkatalogene rundt til disse testmiljøene ville være et ubeleilig foretak.

Av den grunn vil vi trenge en enkelt mappe der vi kunne kaste prosjektet vårt til disse nettstedene samtidig, noe som til slutt gjør arbeidsflyten mer organisert.

Et kort om kjørekortlegging

Vagrant lar oss synkronisere kataloger til den virtuelle maskinen. Faktisk utnytter Vagrant sin egen funksjon under hetten. Hvis vi ser på Vagrantfile Under delen "Kjør kartlegging" finner vi det synkroniserer en rekke kataloger, inkludert www / der alle våre nettsteders installasjon er vert.

Mapping av en egendefinert katalog

Til å begynne med må vi først opprette to kataloger, henholdsvis for å være vert for våre plugins og temaer. Du kan plassere disse katalogene hvor som helst på datamaskinen. I mitt tilfelle har jeg en katalog som heter dev som inneholder alle mine prosjekter, som følger.

. └── dev └── library ├── plugins └── temaer 

Deretter registrerer vi kart over disse katalogene. Vi har tre WordPress-nettsteder installert på local.wordpress.dev og local.wordpress-trunk.dev. Så, disse katalogene vil bli kartlagt, peker og synkroniserer til hver av / plugins / og / temaer / katalog over disse nettstedene i den virtuelle maskinen.

Det bør imidlertid alltid unngås å endre standardsystemfilen. Derfor istedenfor å modifisere Vagrantfile, Vi legger til kartleggingskonfigurasjonen i en fil som heter Customfile-ser på Vagrantfile, på omtrent linje 241, finner vi det lastet for å søke på egendefinert måte eller tilsidesette standardkonfigurasjonene.

Opprett Customfile filen på samme sted som Vagrantfile.

. └──vvv └── Vagrantfile ├── Customfile 

Legg til følgende kodelinjer, som jeg er sikker på, er ganske selvforklarende, inn i filen.

## Plugins config.vm.synced_folder "/ Brukere / Thoriq / Nettsteder / dev / plugins /", "/ srv / www / wordpress-default / wp-content / plugins",: owner => "www-data" mount_options => ["dmode = 775", "fmode = 774"] config.vm.synced_folder "/ Brukere / Thoriq / Nettsteder / dev / plugins /", "/ srv / www / wordpress-develop / wp-content / plugins ",: owner =>" www-data ",: mount_options => [" dmode = 775 "," fmode = 774 "] config.vm.synced_folder" / Brukere / Thoriq / Sites / dev / plugins / "," / srv / www / wordpress-42 / htdocs / wp-content / plugins ",: owner =>" www-data ",: mount_options => [" dmode = 775 "," fmode = 774 "] ## Temaer config.vm .synced_folder "/ Brukere / Thoriq / Nettsteder / dev / temaer /", "/ srv / www / wordpress-default / wp-content / themes",: owner => "www-data",: mount_options => ["dmode = 775 "," fmode = 774 "] config.vm.synced_folder" / Brukere / Thoriq / Nettsteder / dev / temaer / "," / srv / www / wordpress-trunk / wp-content / themes " "www-data",: mount_options => ["dmode = 775", "fmode = 774"] config.vm.synced_folder "/ Brukere / Thoriq / Sites / dev / themes /", "/ srv / www / wordpress- 42 / htdocs / wp-con telt / temaer ",: eier =>" www-data ",: mount_options => [" dmode = 775 "," fmode = 774 "] 

Oppdater Vagrant ved å kjøre vagrant reload, ellers vagrant opp hvis den ikke kjører. Våre plugins og temaer i / Dev / plugins / og / Dev / temaer / bør nå bli oppført på alle nettstedene.

Legge til GUI-laget

På dette tidspunktet har vi satt Vagrant og VVV opp og går. Vi er nå i stand til å skape et nytt lokalt nettsted i løpet av noen få minutter uten å sjonglere rotet ved å laste ned WordPress .glidelås pakke, pakke ut pakken og redigere verter filoppføringer.

De fleste av våre operasjoner til dette punktet har blitt gjort gjennom kommandolinjegrensesnittet. Det kan forståelig nok være litt skremmende for førstegangsarbeidere, spesielt for de som kommer fra grafiske grensesnittapplikasjoner som MAMP eller WAMP. Det tar tid å bli vant til det.

Noen operasjoner i Vagrant kan imidlertid erstattes med en GUI-motpart. Det er noen utvidelser tilgjengelig som legger til gode GUI-lag til Vagrant og VVV, noe som gjør å gjøre noen ting så enkelt som et klikk. Noen av dem inkluderer:

Vagrant Dashboard

The Vagrant Dashboard på vvv.dev er kanskje et ekvivalent med MAMPs localhost / MAMP / side, bortsett fra den vises i vanlig hvit.

Heldigvis kan vi leve det opp med en forlengelse. Det er noen valg, og jeg velger VVV Dashboard av topdown. For å distribuere utvidelsen, naviger til / Www / default / katalog og dra utvidelsesarkivet:

git klon https://github.com/topdown/VVV-Dashboard.git dashbord

Så kopier /dashboard/dashboard-custom.php inn i / defaults /, som følger.

. ─ - dashboard ├── dashboard-custom.php (det tilpassede dashbordet) ├── database-admin ├── index.php ├── memcached-admin ├── opcache-status ├── phpinfo └── webgrind 

Du trenger ikke å laste om Vagrant. Bare oppdater VVV Dashboard på vvv.dev. Du bør nå finne mange andre detaljer om vår Vagrant-konfigurasjon på dashbordet, bortsett fra bare å oppgi de installerte nettstedene.

Tilpasset VVV Dashboard. 

Vagrant Manager

Et annet verktøy du kan installere er Vagrant Manager.

Vagrant Manager er relatert til MAMP og WAMP, hvor det i dette tilfellet tillater oss å løpe, stoppe og laste Vagrant på nytt med noen få klikk. Vagrant Manager er tilgjengelig i OS X gjennom Homebrew Cask og .dmg, og i Windows gjennom .exe installasjonspakke. Derfor skal installeringen av applikasjonen være en no-brainer.

Når Vagrant Manager er installert og kjører, kan du finne en liste over Vagrant-konfigurasjonene og som for øyeblikket er aktiv.

phpMyAdmin

Vagrant kommer også med phpMyAdmin innebygd, tilgjengelig på vvv.dev/database-admin/. Jeg er imidlertid ikke en fan av phpMyAdmin. Bortsett fra det unlovely grensesnittet, er det trist å behandle en spørring i en stor database. Dette er de grunnene til at jeg foretrekker å bruke en innfødt applikasjon som Sequel Pro, eller SQL Workbench for Windows. Vi må imidlertid først koble programmet til MySQL.

Koble til MySQL med Native Application

Her bruker jeg Sequel Pro for OS X. Likevel, legitimasjonene som kreves for å få forbindelse til MySQL, gjelder uansett hvilke applikasjoner du bruker. De er de samme.

  • MySQL Host127.0.0.1
  • MySQL Brukernavnrot
  • MySQL passordrot
  • SSH Hostlocal.wordpress.dev (gjelder også for alle domener registrert i VVV)
  • SSH Brukervagrant
  • SSH-passordvagrant

Hvis du ser en advarsel som vist nedenfor, kan du ignorere den og bare klikke "Ja" eller "OK" for å fortsette. Vi kobler bare til en virtuell maskin på vår egen datamaskin, så det bør ikke være noe å bekymre seg for.

Når vi er koblet til, kan vi se databasen over våre nettsider. Nå kan vi gjøre noen ting som å importere og eksportere en database, eller sannsynligvis utføre noen SQL-spørringer.

Hva blir det neste?

Som nevnt kommer VVV med en pakke med verktøy, inkludert PHP CodeSniffer, som lar deg utføre koderevisjon på prosjektene dine mot WordPress Coding Standards. Det er noe jeg tror du burde gjøre, spesielt før prosjektlanseringen.

Men siden PHP CodeSniffer er noe utenfor omfanget av denne opplæringen, har jeg satt sammen et par referanser for å hjelpe deg med å komme i gang på emnet.

  • WordPress Coding Standard Series
  • PHP CodeSniffer Offisiell Wiki

Wrapping Up

Vi har kommet langt for å sette VVV opp og løp så vel som forbedre den med en rekke utvidelser. I siste instans strømlinerer det vår arbeidsflyt når det gjelder å skape et nytt lokalt nettsted eller testmiljøer med WordPress, selv om det kan ta litt tid å bli vant til det. 

WordPress har en utrolig aktiv økonomi. Det er temaer, plugins, biblioteker og mange andre produkter som hjelper deg med å bygge opp ditt nettsted og prosjekt. Plattformens åpen kildekode gjør det også til et flott alternativ som du kan forbedre programmeringsevnen din. Uansett kan du se alt vi har tilgjengelig på Envato Marketplace.

Jeg håper du finner denne opplæringen et nyttig referanse for å komme i gang med Vagrant og VVV.