Come sviluppare in locale su WordPress

Esistono tanti modi di sviluppare in locale direttamente su WordPress. L’idea di base è quella di far girare un server nella macchina locale, sulla quale installare uno stack di tipo LAMP (Linux, Apache, Mysql e PHP). Attraverso questo, sarà possibile utilizzare la macchina locale alla stregua di un server remoto e testare i nostri script, senza il rischio di compromettere un server.

Installare una macchina LAMP base non è difficile, anche perchè spesso esistono dei package pronti che ci semplificano la vita. Tuttavia, se il nostro focus di sviluppo è proprio WordPress, esistono dei sistemi migliori che installare i soliti XAMPP, MAMP, o WAMP sul nostro sistema operativo principale.

Dopo tanti anni di sviluppo, in Bufox, abbiamo trovato un assetto abbastanza stabile per lo sviluppo di temi e plugin di WordPress, e in quest’articolo cercherò di spiegartelo. Se inizialmente ti troverai un po’ spaesato, sono sicuro che, con un po’ di studio e approfondimento, queste informazioni ti torneranno utili e ti faranno risparmiare tanto tempo ed energie.

1 – Lo Stack

Come già detto, uno stack LAMP è la soluzione migliore per far girare un’installazione di WordPress. Tuttavia, farlo girare nella nostra macchina principale non è sempre una saggia idea per tanti motivi:

  1. la nostra macchina virtuale non sempre presenta delle condizioni simili a quelle del server in cui andremo ad ospitare i nostri script;
  2. mantenere in un unico calderone il nostro sistema operativo, con tutte le nostre applicazioni, e i file che dovranno girare su un secondo server, non è mai una saggia decisione. Pensa solo che, il giorno che dovrai cambiare o formattare il tuo computer, ti toccherà ripristinare tutte le impostazioni da zero. Lo stesso vale in caso di malfunzionamenti di uno qualsiasi dei moduli dello stack LAMP.

La soluzione migliore, in questi casi, è quella di utilizzare un ambiente virtuale. Attenzione, perchè ambiente virtuale non significa sempre macchina virtuale! Ci sono soluzioni (ad es. Docker), che creano ambienti virtuali, senza necessariamente avere bisogno di macchine virtuali.

Esistono perciò delle soluzioni che permettono di avere un ambiente virtuale già pronto e operativo, nel quale sarà installato tutto lo stack LAMP,che potrà girare in maniera indipendente rispetto al nostro sistema operativo principale. I vantaggi di queste soluzioni sono davvero innumerevoli. In Bufox utilizziamo da anni VVV (Varying Vagrant Vagrants), che implementa una macchina virtuale Vagrant ottimizzata proprio per lo sviluppo WordPress. Pur avendo provato tante altre soluzioni basate su macchine virtuali o su container, riteniamo che VVV rimanga al giorno d’oggi la soluzione più semplice e versatile per uno sviluppatore WordPress.

VVV offre supporto nativo per una lunghissima serie di strumenti, utili ad uno sviluppatore WordPress, senza bisogno di doverli installare manualmente. Citando la documentazione ufficiale di VVV, ecco i pacchetti che troveremo già comodamente installati in una macchina virtuale VVV:

  • Ubuntu 14.04 LTS (Trusty Tahr)
  • WordPress Develop
  • WordPress Stable
  • WP-CLI (master branch)
  • nginx (mainline version)
  • MariaDB 10.1
  • php-fpm 7.2.x
  • memcached
  • PHP memcache extension
  • PHP xdebug extension
  • PHP imagick extension
  • PHPUnit
  • ack-grep
  • git
  • subversion
  • ngrep
  • dos2unix
  • Composer
  • phpMemcachedAdmin
  • phpMyAdmin (multi-language)
  • Opcache Status
  • Webgrind
  • NodeJs
  • grunt-cli
  • Mailcatcher

Torneremo a VVV in un articolo dedicato, nel quale faremo alcuni esempi del suo utilizzo. Tuttavia, attualmente riteniamo VVV una scelta imprescindibile per chi voglia fare sviluppo WordPress di buon livello.

2 – L’IDE

La sigla IDE sta per Integrated Development Environment. Si tratta del software che ci permetterà l’editing dei nostri file e ci offrirà una serie di strumenti di sviluppo utili a velocizzare la generazione del codice. Un IDE, così come una macchina virtuale non è strettamente necessario per lo sviluppo del codice. Tanti programmatori old school continuano ad utilizzare strumenti triviali come notepad, ma anche gli intramontabili tool linux nano o vim per modificare il codice. Sebbene ognuno di questi strumenti continui ad essere utile ad alcuni specifici scopi, nello sviluppo moderno non si può ormai fare a meno di un IDE serio e completo, dotato di tutte le funzionalità per alleggerire il nostro carico di lavoro.

Fino a qualche anno fa, lo strumento di elezione per lo sviluppo in PHP era PHPStorm. Si tratta di un software a pagamento, con licenza annuale. Le alternative free, purtroppo, non offrivano le stesse funzionalità, o la stessa eleganza dell’interfaccia. IDE tradizionali orientati su altri linguaggi di programmazione, come per esempio Netbeans, offrivano delle versioni ottimizzate per PHP. Queste risultavano delle buone scelte, ma peccavano in aggiornamenti, veste grafica, ottimizzazione delle prestazioni o disponibilità di plugin e add-ons.

Negli ultimi anni, tuttavia, il concetto di IDE si è un po’ evoluto, e sono nati una serie di semplici editor di testo che, attraverso plugin, permettevano di implementare delle vere e proprie funzionalità da IDE. Tra questi, quelli che si sono più evoluti e che sono maggiormente apprezzati dalla community, sono sicuramente Visual Studio Code e Atom.

In Bufox utilizziamo da anni Microsoft Visual Studio Code per lo sviluppo del nostro codice. Il motivo è semplice: il software è completamente gratuito, e implementa tutte le funzionalità necessarie: completamento automatico del codice, interpretazione dei costrutti, un’infinità di plugin e un supporto di una community di sviluppatori davvero infinita.

Visual Studio Code per noi è diventato un must per lo sviluppo con WordPress. Utilizzato con i giusti plugin e con il supporto per l’accesso remoto, diventa davvero impareggiabile, e permette di velocizzare notevolmente lo sviluppo di temi e plugin.

3 – I Tool

Sebbene molti tool siano disponibili già con l’installazione di VVV, è importante utilizzarne alcuni in maniera globale, anche all’interno della propria macchina host.

Il primo grande step che uno sviluppatore amatoriale deve fare prima di poter diventare uno sviluppatore professionale, è quello di utilizzare un sistema di versioning. Noi utilizziamo Git, che attualmente è il sistema di versioning più diffuso al mondo, anche se esistono diverse alternative.

Git ci permetterà di tenere traccia delle modifiche al nostro codice, di passare da versioni di sviluppo a versioni di produzione con una singola linea di codice da terminale, di ottimizzare il deployment e di dare al nostro sviluppo una marcia in più davvero decisiva.

Se utilizzate Git, il consiglio è quello di appoggiarvi a strumenti come Github, Gitlab o Bitbucket per memorizzare il vostro codice sorgente. Imparare come organizzare i repository Git per lo sviluppo Wordpres non è un’operazione semplice, ma la tratteremo presto nei nostri tutorial. Iniziare a familiarizzare con i sistemi di versioning, tuttavia, non è un’optional, ma è davvero un must per qualsiasi sviluppatore.

La pazienza

Sviluppare su WordPress non è un gioco. Implica la conoscenza di diversi linguaggi di programmazione, di strumenti di sviluppo e deployment. WordPress permette anche a un novizio di creare un blog in pochi minuti, ma quando si tratta di fare un plugin o un tema in maniera professionale, le competenze richieste possono essere superiori a quelle di un programmatore senior che sviluppa su framework come Symphony o Laravel.

Se siete alle prime armi e vi affascina questo mondo, seguite il nostro blog e imparerete tante cose. Se invece avete urgenza di portare a termine un lavoro nel minor tempo possibile, il consiglio è quello di affidarvi a mani esperte. Risparmierete tempo, denaro e tanta, tanta frustrazione.

Utilizziamo diversi tipi di cookie per garantirti un'esperienza di navigazione ottimale. Troverai abilitati solo quelli che permettono il corretto funzionamento del sito e l'invio di statistiche anonime sul suo utilizzo.

Vuoi abilitare anche i cookie opzionali per le finalità indicate nella Privacy e Cookie Policy?

SI NO