Knowledge base

Sviluppo locale con zinnector dev

Come zinnector dev esegue un vero WordPress sulla Vostra macchina: i due runtime (WebAssembly senza Docker, o PHP nativo in Docker), la scelta di una versione di PHP e WordPress, cosa viene servito dal Vostro progetto, dove risiede il runtime da 570 MB e cosa succede su Node 26.

zinnector dev esegue un vero WordPress sul Suo computer, servendo i plugin e i temi presenti nel Suo progetto, con la versione di PHP scelta da Lei. Questo articolo spiega i due runtime disponibili, come selezionare le versioni, cosa viene servito e da dove, e dove risiede il runtime sul disco — affinché ciò che testa localmente corrisponda a ciò che distribuisce.

I due runtime e perché sono entrambi reali

Playground è l'opzione predefinita. WordPress Playground compila PHP in WebAssembly e lo esegue all'interno di Node, consentendo a un portatile sul quale è installato solo Node di avviare un'istanza di WordPress in pochi secondi. È disponibile qualsiasi versione di PHP da 5.2 a 8.5. Include un set ridotto di estensioni PHP (intl, redis, memcached in base alla build attuale), sufficiente per la maggior parte delle attività su temi e plugin.

Docker esegue container nativi php-fpm e MariaDB. È più lento, richiede il daemon Docker e circa 1,2 GB di immagini, e supporta PHP da 7.4 a 8.5 — tuttavia esegue un PHP nativo con il set completo di estensioni, comprese imagick e gd. Rappresenta la soluzione ideale quando occorre testare un'estensione non inclusa nella build WebAssembly.

zinnector dev                       # playground
zinnector dev --runtime docker      # PHP nativo + MariaDB

Non viene mai eseguito un fallback silenzioso a Docker. Uno sviluppatore convinto di utilizzare WebAssembly che si trovi invece su Docker riceverebbe una risposta errata da uno strumento che cerca di essere d'aiuto; per questo motivo è necessario richiederlo esplicitamente per nome.

Scelta delle versioni di PHP e WordPress

zinnector dev --php 8.1 --wp 6.7    # sviluppo con una coppia specifica
zinnector dev --port 9401           # quando la porta 9400 è occupata
zinnector dev --no-login            # non esegue l'accesso automatico a wp-admin
zinnector dev --verbose             # mostra l'output del runtime

I valori predefiniti provengono da zinnector.json all'interno del progetto — php, wordpress, runtime e port — generati da zinnector new e da sottoporre a commit, in modo che chiunque lavori al progetto utilizzi le medesime versioni. Un flag inserito da riga di comando ha la priorità sul file per la singola esecuzione.

La versione che si dichiara e quella che viene eseguita sono due dati differenti. zinnector dev --once avvia il runtime, mostra le informazioni effettivamente rilevate — versione di PHP, versione di WordPress, estensioni caricate — e si arresta. zinnector check --probe impiega la stessa rilevazione per confrontare il Suo progetto con uno slot di hosting.

Cosa viene servito dal Suo progetto

Il runtime monta direttamente le directory wp-content/plugins, wp-content/themes e wp-content/mu-plugins del Suo progetto, rendendo immediatamente visibile qualsiasi file salvato al successivo caricamento della pagina. Le directory esistenti che non contengono file reali non vengono volutamente montate: una directory themes/ vuota montata sui temi nativi del runtime lascerebbe WordPress completamente privo di temi, generando un errore 500 vuoto invece del Suo sito. Per questo motivo lo scaffold mantiene le cartelle vuote con un file .gitkeep, evitando che oscurino alcunché fino all'aggiunta di un tema al loro interno.

Dove risiede il runtime

Il runtime di WordPress viene scaricato al primo utilizzo anziché essere distribuito con la CLI — il pacchetto contenente tutte le build di PHP occupa circa 570 MB, e uno sviluppatore che deve soltanto elencare i siti non dovrebbe farsi carico di questo download. Viene archiviato nella cache proprietaria di Zinnector®, all'interno di ~/.cache/zinnector/runtimes/playground/<version> (o nel percorso specificato da ZINNECTOR_CACHE_DIR), mai all'interno del Suo progetto, impedendone l'inclusione nel repository o nella struttura rilevata da zinnector push. Il download viene eseguito dalla Sua installazione locale di npm, avviata come node npm-cli.js — mai tramite una shell.

La versione del runtime è vincolata a quella della CLI, garantendo che sviluppatori diversi sullo stesso progetto utilizzino le stesse build di PHP. Il comando zinnector dev --reset-runtime elimina il runtime installato e lo reinstalla da capo, risolvendo eventuali problemi di un runtime installato ma non avviabile.

Su Node 26 o versioni successive

La CLI è compatibile con qualsiasi versione di Node dalla 24 in poi. Tuttavia, il modulo nativo del runtime fornisce binari precompilati solo per Node 24 e 25 (a partire da settembre 2026). Per evitare processi di compilazione — che su Windows richiederebbero l'installazione di Visual Studio — Zinnector® scarica nella stessa cache un'istanza dedicata di Node 24 solo per il runtime, di circa 30 MB, verificata tramite i checksum pubblicati da nodejs.org. L'avviso di installazione lo notifica quando applicabile. Nessun aspetto della Sua installazione di Node viene modificato.

Contenuti correlati

Tutta la documentazione per sviluppatori →

Le ultime novità dal blog

Cosa abbiamo scritto su hosting, SEO e gestione di siti su larga scala.

SEO e link building dal livello di hosting: Il punto di vista di un operatore per il 2026

Come l'hosting modella l'indicizzazione e l'equità dei link nel 2026: mantenere le pagine indicizzate, verificare i domini datati prima di svilupparli, link building senza tracce per i motori di ricerca e una visione onesta di ciò che l'infrastruttura può e non può fare per la SEO.

Leggi l'articolo →

Rendere WordPress veloce e sicuro: checklist per prestazioni e plugin

Una lista di controllo pratica per un WordPress veloce e sicuro: memorizzazione nella cache a livello di server, una cache degli oggetti per sito, la manciata di plugin che vale la pena eseguire, il mantenimento dello stack aggiornato e le pagine WooCommerce da non memorizzare mai nella cache.

Leggi l'articolo →

Come scegliere un hosting web gestito nel 2026: guida per l'acquirente

Cosa distingue davvero un buon hosting gestito da una macchina economica con pannello di controllo — migrazioni, backup, isolamento, caching reale e scalabilità trasparente — e come valutarlo prima di impegnarsi.

Leggi l'articolo →

Leggi il blog →

Hai ancora bisogno di aiuto?

Il supporto è incluso in ogni piano, il servizio è attivo 24 ore al giorno e potete scriverci in una qualsiasi delle nostre 58 lingue: vi risponderemo nella vostra.

Contatta l'assistenza → Tutti gli articoli →