Nuova versione WinterCMS 1.2

Luca Benati

Finalmente è uscita la versione 1.2 di WinterCMS! e porta con sè molte novità


Pubblicato da Luca Benati il 24 luglio 2022

Intanto facciamo un grande ringraziamento a tutta la comunità che ha permesso di raggiungere questo obiettivo grazie a PR e feedback provenienti dalla variegata community sparsa in tutto il mondo senza la quale non sarebbe stato possibile.

Non dimentichiamoci che WinterCMS nasce per essere e rimanere per sempre un progetto della comunità quindi anche se i core manteiners fanno un eccellente lavoro è necessario che tutti, a loro modo, collaborino a mantenere il progetto, non è necessario essere dei ninja di PHP o altro tutti possono collaborare anche migliorando la documentazione o le traduzioni, ogni contributo farà crescere il nostro amico WinterCMS e indirettamente anche noi stessi, poi Luke, Ben e Mark sono persone molto gradevoli, gentili ed inclusive quindi non abbiate timore e collaborate!

È anche possibile sostenere il progetto e accellerare l'evoluzione della piattaforma inviando una donazione singola o periodica tramite OpenCollective all'indirizzo https://opencollective.com/wintercms, grazie alle donazioni sarà possibile dedicare ancora più ore al miglioramento della piattaforma e del suo ecosistema.

Cosa c'è di nuovo

Le novità di questa nuova release sono veramente tante e non le staremo qui a elencare tutte, è possibile vedere l'elenco completo all'indirizzo https://github.com/wintercms/winter/releases/tag/v1.2.0, alcune però oltre ad essere interessanti portano con s'è dei breaking changes quindi attenzione.

Dipendenze

Sicuramente la novità più interessante e che può causare incompatibilità è che ora la dipendenza di Laravel è passata dalla vecchia alla nuova LTS di Laravel 9.x e di conseguenza la versione minima di PHP supportata ora è la 8.0.2

Twig, il linguaggio di template usato da Symfony, utilizzato da WinterCMS al posto di Blade dei classic progetti Laravel è stato portato dalla versione 2.x alla nuova 3.x che offre migliori performace e diversi miglioramenti.

Per la parte di debug e testing troviamo aggiornati; Laravel Tinker alla versione 2.7, PHPUnit alla 9.5.8 e Mockery alla 1.4.4

Le librerie Symfony e Symfony/Yaml passano rispettivamente alle versioni 6.x e 6.0

Assetic, la libreria che si occupa di compilare e compattare gli assets passa dalla versione embeddata 1.4.0 alla versione 3.0 come dipendenza esterna.

VSCode

In concomitanza con la nuova versione è stata rilasciata anche la versine ufficiale dell'estesione per VSCode disponibile qui che fronisce funzionalità di completaemnto del codice e di evidenziazione della sintassi per i progetti Winter CMS.

CLI e comandi di console

Tra le novità più interessanti troviamo l'autocompletamento dei comandi di WinterCMS, l'aggiunta dell'alias migrate per winter:up per agevolare chi proviene da Laravel.

Sono stati aggiunti i comandi di scaffolding per la creazione di nuovi Job e create:theme ora accetta come parametro aggiuntivo, che di default è less, per il supporto a Tailwind.

Backend UI

Aggiornata alla versione 6 la libreria Fontawesome che rende disponibile ben 1300 icone.

I file dei tempalte di backend (layouts, views e partials) ora utilizzano l'estensione .php invece di .htm per ridurre la confusione sul linguaggio di template da utilizzare, l'estensione .htm rimane supportata ma non è raccomandata.

Il media manager ha prestazioni migliorate grazie anche ai migliormanto apportati alla classe ImageResizer per la generazione delle thumb.

Frontend

Questo in realtà è un aggironamento diponibile già dalle versioni predenti e riguarda il nuovo framework javascript di frontend denominato Snowboard che migliora prestazioni ed estensibilità ed abbandona la dipendenza da Jquery come aveva il precedente.

Vedremo in un articolo apposito le principali differenze e come migrare dal vecchio al nuovo framework javascript in modo indolore, per ora ci basta sapere che per averlo disponibile con tutte le sue caratteristiche diponibili nel nostro tema è sufficente aggiungere il tag {% snowboard all %}

Database

Ora lo scaffolding dei model supporta le migrazioni anonime di default ed è stato aggiungo il metodo add{$RelationType}Relation($name, $config) al trait HasRelationships che facilita l'aggiunta di relazioni a modelli esistenti in modo dinamico.

Plugin e temi

Sono stati aggiornati e rilasciati diversi plugin dalla community, i più interessanti a mio avviso sono per l'integrazione di Matomo, la ricerca fulltext e la gestione dei redirect per una buona SEO, ma sono disponibili già anche i vari driver per i servizi di invio mail come SendGrid, Mailgun, Mandrill, SparkPost, AWS e Postmark

Conclusioni

Le novità sono ancora tante qui ci siamo limitati a vedere le più evidenti, ce ne sono molte altre soprattutto per quanto riguarda metodi, classi ecc come il Plugin Manager che ora rende disponibile un sistema di attivazione/disattivazione dei plugin a livello programmatico, vi ricordo che l'elenco esaustivo è disponibile a questo indirizzo

Questo non vuol dire che dobbiamo per forza passare alla nuova versione soprattutto se l'ambiente non lo permette, sono usciti fix e nuove feature anche per la versione di WinterCMS 1.1.9 (Laravel LTS 6.0) e anche alcuni fix della versione di WinterCMS 1.0.475 (Laravel LTS 5.5) per chi ancora è fermo e/o non può aggiornarsi.

Questo ci fà capire come WinterCMS sia un progetto vivo e pieno di continue novità che ricordo ha bisogno del suppoto di tutta la comunità e anche di te che pensi di non farne parte.

Happy coding!


Lunga vita e prosperità

Ti interessa un argomento non trattato?