Indice dei contenuti dell'articolo:
Per uno sviluppatore, è spesso frustrante dover costantemente gestire configurazioni, installare diverse librerie e occuparsi di licenze commerciali. Ciò che gli sviluppatori amano è scrivere codice, creare cose e lanciare prodotti che aiutano le persone. Infatti, per loro il codice è poesia.
wp-now è un nuovo ambiente di sviluppo senza configurazione a cui Automattic ha recentemente contribuito per il WordPress Playground. Sebbene si trovi attualmente nella sua fase alfa, wp-now rappresenta già il metodo più rapido e semplice per avviare un sito WordPress locale.
Automattic vuole aiutare gli sviluppatori a concentrarsi su ciò che è più importante, cioè trasformare la caffeina in linee di codice e lanciare prodotti in tempi rapidi.
wp-now può essere installato direttamente da npm. Funziona su tutte le piattaforme (Mac, Linux e Windows). Anche se non supporta ancora i domini personalizzati o SSL, Automattic lo ha in programma. I contributori di wp-now stanno anche considerando la possibilità di rilevare automaticamente quando un file viene modificato e di aggiornare automaticamente il browser, di importare un database da un altro sito WordPress e di aggiungere una funzione di deploy per l’hosting SSH/SFTP, tra le altre funzionalità.
In WordPress.com, contribuire a progetti come WordPress Playground è in linea con la missione dell’azienda di fornire la migliore piattaforma di hosting gestito per WordPress. Nel corso dell’ultimo anno, l’esperienza degli sviluppatori su WordPress.com è stata arricchita con strumenti come WP-CLI, accesso SSH e siti di staging.
Uno degli aspetti in cui wp-now risulta ottimizzato è lo sviluppo dei temi Block. Immaginiamo uno sviluppatore alle prese con un nuovo e impegnativo progetto: la creazione di un tema block per un’università di prestigio.
Lo sviluppatore è stanco di ripetere continuamente gli stessi passaggi: scaricare l’ultima versione di WordPress, impostare un nuovo sito e tenere traccia dei propri dati di accesso. Si ricorda di un post sul blog che annunciava uno strumento innovativo da esplorare: “Avvia un ambiente locale in pochi secondi con wp-now”. Così decide di provare, dato che l’unico requisito è npm e potrebbe finalmente smettere di usare Docker.
Dopo aver avviato wp-now, in pochi secondi si apre automaticamente nel suo browser un nuovo sito web con il tema scelto. Non ha bisogno di installare il tema o inserire le sue credenziali, è già loggato come amministratore.
Dopo un po’ di sviluppo, decide di testare il suo tema utilizzando l’ultimo candidato alla release di WordPress:
wp-now start --wp=6.3-RC1
Il suo sito sembra ottimo sul suo computer, ma il cliente ha chiesto di iniziare a utilizzare PHP 8.2 mentre WordPress è ancora alla versione 6.1. Ma non c’è problema per wp-now:
wp-now start --php=8.2 --wp=6.1.3
Alla fine di una giornata di lavoro produttiva, torna a casa con un senso di soddisfazione. Si rende conto che questo nuovo strumento è eccellente per lo sviluppo dei suoi prodotti e decide di condividerlo con i suoi colleghi. Può aiutarli con i loro temi e plugin. Come bonus, rende anche facile contribuire a WordPress.
Più veloce rispetto a Docker
Sotto il cofano, wp-now utilizza WordPress Playground, che esegue PHP tramite WebAssembly. La performance è importante, quindi Automattic ha misurato come wp-now si confronta con l’ambiente di sviluppo locale basato su Docker, wp-env.
In generale, wp-now è molte volte più veloce per iniziare e altrettanto veloce per lavorare:
Task | wp-now | wp-env |
Download dependencies | 10s | 5m |
Start Docker | 0s | 12s |
Start environment | 1.03s | 2.35s |
Load site home page | 0.3s | 0.17s |
Load admin dashboard | 0.34s | 0.17s |
Anche se le richieste alle pagine che hanno testato impiegano circa il doppio del tempo nell’ambiente wp-now, le differenze assolute erano nell’ordine di 100-400ms, che non dovrebbero influenzare molto il lavoro di sviluppo quotidiano.
Powered By WordPress Playground
wp-now è fondamentalmente un’applicazione NodeJS che include un server PHP incorporato, alimentato da WordPress Playground.
Quando un utente utilizza wp-now da una directory, wp-now crea un’istanza di php-wasm, scarica la versione selezionata di WordPress e monta le directory necessarie in un sistema di file virtuale (VFS). Successivamente, iniziano un server NodeJS express che ascolta e instrada tutte le richieste al php-wasm. Di conseguenza, wp-now è in grado di effettuare facilmente l’accesso automatico a WordPress, attivare plugin e temi e configurare automaticamente il sito WordPress dell’utente.
wp-now si basa sul plugin SQLite Database Integration per la sua base di dati, ma può anche connettersi a un database MySQL esistente. Tutti i file specifici del progetto vengono conservati nella directory home dell’utente, all’interno della cartella ~/.wp-now. Le directory vengono create seguendo questo schema: ~/.wp-now/wp-content/${nomeCartellaProgetto}-${hashPercorso}.
In termini più semplici, wp-now è un potente strumento che consente agli sviluppatori di lavorare in un ambiente locale senza dover affrontare i problemi associati alla configurazione manuale di un sito WordPress. Questa applicazione NodeJS gestisce i dettagli tecnici e fornisce un’esperienza utente fluida, consentendo agli sviluppatori di concentrarsi sulla creazione del contenuto e sulla progettazione del sito. Con il supporto sia per SQLite che per MySQL, wp-now offre flessibilità in termini di gestione dei dati, il tutto mentre mantiene i file del progetto ordinati e facilmente accessibili.
Aperto ai Contributi
I contributi provenienti dalla comunità sono inestimabili nel migliorare wp-now e WordPress Playground. Gli sviluppatori e gli utenti possono aiutare e contribuire condividendo le loro idee, esprimendo le loro opinioni su quali funzionalità sono più utili per loro, segnalando problemi o persino creando pull request per il repository GitHub di WordPress Playground Tools. La squadra di wp-now è guidata dai feedback degli utenti: invitano tutti a fare domande e condividere le proprie idee.
Ecco alcune idee future che la squadra sta considerando:
- Creare un tema/plugin modello con la funzione wp-now create.
- Rilevamento automatico quando un file viene modificato e aggiornamento automatico del browser.
- Utilizzare wp-now playground per avviare un sito WordPress senza alcun file.
- Importare il database da un altro sito WordPress, che sia sul computer dell’utente o ospitato esternamente.
- Aggiungere la funzione di deploy per aiutare gli sviluppatori a distribuire su qualsiasi hosting SSH/SFTP.
- Supportare domini personalizzati.
Se gli utenti desiderano costruire wp-now dal suo codice sorgente, possono seguire i passaggi per la contribuzione. Inoltre, è possibile unirsi alla conversazione nel canale #meta-playground su Making WordPress Slack.