Cos’è Wayfinder
Laravel Wayfinder è un pacchetto che collega senza attriti il backend Laravel al frontend TypeScript. Genera automaticamente funzioni TypeScript completamente tipizzate a partire da controller e rotte, così puoi chiamare gli endpoint Laravel direttamente come funzioni dal codice frontend. Nessuna hardcoding di URL, nessuna gestione manuale dei parametri di rotta, nessuna sincronizzazione manuale dei cambiamenti backend: tutto questo diventa superfluo.Wayfinder è in Beta (attualmente v0.1.x). Prima del rilascio di v1.0.0 l’API può cambiare. Tutte le modifiche importanti sono registrate nel CHANGELOG.
Differenze tra Ziggy e Wayfinder
Cos’è Ziggy
Ziggy è un route helper usato per anni nell’ecosistema Laravel. Espone al lato JavaScript le definizioni di rotta di Laravel, permettendo di generare URL conroute('posts.show', { id: 1 }).
Perché è stato sostituito da Wayfinder
Ziggy tratta nome della rotta e parametri come stringhe e ha limiti nell’interazione con TypeScript. Refusi nei nomi di rotta o nomi di parametri errati diventano errori solo a runtime. Wayfinder è progettato TypeScript-first e genera i metodi dei controller come funzioni importabili.
Negli starter kit Laravel basati su Inertia (React, Vue, Svelte), Wayfinder è adottato come standard.
Installazione
1. Installazione del pacchetto lato server con Composer
2. Installazione del plugin Vite con NPM
3. Aggiunta del plugin in vite.config.js
Generazione dei file di definizione TypeScript
Con il comandowayfinder:generate puoi generare i file TypeScript.
resources/js.
--path.
Uso di base
Importare e usare un’azione
Esempio per generare l’URL corrispondente al metodoshow di PostController.
.url().
Come passare i parametri
Le funzioni Wayfinder accettano parametri in varie forme./posts/{post:slug}), puoi usarne il valore.
Importare l’intero controller
Puoi anche importare l’intero controller e chiamarne i metodi.Controller a singola azione
I controller a singola azione (Invokable Controller) si chiamano direttamente come funzione importata.Importazione delle rotte con nome
Per accedere per nome di rotta, usa i file sottoroutes/.
Parametri di query
Tutte le funzioni Wayfinder possono aggiungere parametri di query tramite l’opzionequery.
mergeQuery.
Variante Form
Per usarlo nei form HTML tradizionali, genera con l’opzione--with-form e usa la variante .form.
Combinare Inertia e Wayfinder
Combinando gli helper form di Inertia con Wayfinder, puoi inviare form senza scrivere alcuna stringa URL.Link.
Adozione negli starter kit
Se crei un nuovo progetto conlaravel new scegliendo React, Vue o Svelte, viene fornita una configurazione con Wayfinder già impostato. Negli starter kit sono inclusi:
- Pacchetto Composer
laravel/wayfinder - Pacchetto NPM
@laravel/vite-plugin-wayfinder - Configurazione del plugin già impostata in
vite.config.js - Directory generate già aggiunte a
.gitignore
Gestione di nomi di metodo in conflitto con parole riservate
Ai metodi di controller con lo stesso nome di parole riservate JavaScript comedelete o import viene aggiunto il suffisso Method.
Stato attuale (v0.1.x)
La versione stabile attuale è fornita dal branchv0.1.x. Al marzo 2026 l’ultima versione è v0.1.15.
Principali modifiche della serie v0.1.x
Funzionalità di nuova generazione in sviluppo nel branch next
Nel branchnext è in sviluppo la prossima versione, con funzionalità notevolmente estese rispetto all’attuale v0.1.x.
Estensione notevole della portata del TypeScript generato
Mentre v0.1.x copre solo rotte e azioni dei controller, la prossima versione genera tutto quanto segue come TypeScript.Generazione di tipi TypeScript per Form Request
Generazione di tipi per modelli Eloquent
types.d.ts.
Conversione degli Enum PHP in TypeScript
Modifica della directory di output
In v0.1.x c’erano tre directory separate (actions/, routes/, wayfinder/), mentre nella prossima versione tutto è raccolto sotto resources/js/wayfinder.
Principali cambiamenti da v0.1.x a next
- Il path di import cambia da
@/actions/...a@/wayfinder/... - I flag
--skip-actions,--skip-routes,--with-formvengono eliminati e migrati nel file di configurazione types.tsdiventatypes.d.ts
Conclusioni
Laravel Wayfinder è la riprogettazione TypeScript-first della funzionalità “riferire le rotte Laravel da JavaScript” offerta da Ziggy. Con l’approccio di importare funzioni generate, migliora notevolmente su tutti i fronti: type-safety, supporto IDE e tree-shaking. Già oggi con v0.1.x realizza il riferimento type-safe di rotte e azioni dei controller ed è adottato come standard negli starter kit Laravel basati su Inertia. Nella prossima versione in sviluppo nel branchnext diventerà una base type-safe ancora più completa, generando come TypeScript anche Form Request, modelli Eloquent, Enum e prop pagina Inertia.
Laravel Wayfinder GitHub
Codice sorgente, CHANGELOG e issue qui.
Vite Plugin Wayfinder
Dettagli sulle opzioni di configurazione del plugin Vite qui.