Concrete CMS: Quando WordPress Non È Più Sufficiente e Scrivere Tutto da Zero in Laravel Sembra Troppo
Conosci quella sensazione quando un cliente chiede un "sito semplice", ma dopo una settimana di revisioni il progetto si trasforma in un mostro con tipi di dati personalizzati, un sistema di permessi complesso e la necessità di modificare i contenuti direttamente sulla pagina? Apri WordPress e ti rendi conto che ti perderai tra i plugin. Guardi Laravel e capisci che scriverai un pannello di amministrazione per tre settimane. Nel mezzo c'è Concrete CMS — un progetto con una lunga storia che cerca di sedersi su due sedie: dare libertà agli sviluppatori e convenienza ai content manager.
In precedenza il progetto si chiamava concrete5. Il cambio di nome in Concrete CMS è avvenuto un paio di anni fa, introducendo un po' di confusione nei repository, ma a livello architetturale è sempre lo stesso solido strumento PHP.
Cos'è in Pratica
Concrete CMS è un sistema di gestione dei contenuti Open Source scritto in PHP. Per essere diretti, è un CMS per chi ama la programmazione orientata agli oggetti ma non vuole perdere tempo con le cose di base come l'autenticazione o la gestione dei file.
La funzionalità principale che la gente ama (o odia, a seconda del punto di vista) è l'editing "contestuale". Vai sul sito, clicchi sul pulsante "Modifica", e cambi i blocchi direttamente nell'interfaccia frontend. Per i clienti è magia. Per gli sviluppatori, è un'architettura costruita su blocchi e pagine.
Cosa Può Catturare uno Sviluppatore
A differenza di molti sistemi che cercano di essere "solo un motore blog", Concrete è stato progettato fin dall'inizio come framework applicativo.
Gestione Flessibile dei Blocchi
In Concrete, tutto è composto da blocchi. Vuoi creare un nuovo tipo di contenuto? Crei una cartella con un controller e un paio di file View. Il sistema li raccoglierà automaticamente, creerà le tabelle necessarie nel DB e li aggiungerà all'interfaccia drag-and-drop. È più comodo che gestire Advanced Custom Fields in altri sistemi.
Gestione dei Permessi Integrata
Non si tratta solo di "admin" e "editor" qui. Puoi configurare l'accesso a un blocco specifico su una pagina specifica per un gruppo di utenti specifico in un momento specifico. Sembra eccessivo finché non ti viene assegnato il compito di costruire un portale aziendale per un'azienda di 500 persone.
Vita nello Stack PHP
Il progetto utilizza attivamente gli standard moderni. Sotto il cofano troverai Composer per la gestione delle dipendenze e i componenti Symfony. Questo significa che non devi imparare un "dialetto PHP speciale", come spesso accade con i sistemi legacy.
Come Distribuire il Progetto in Locale
Il README del progetto è piuttosto conciso, il che è in realtà rinfrescante — niente fronzoli inutili. L'installazione è classica per un progetto PHP.
Prima clona il repository:
git clone https://github.com/concretecms/concretecms.git
cd concretecms/
Poi recupera le dipendenze tramite Composer:
composer install
A proposito, se sei abituato a Docker, la community ha molte immagini pronte, anche se il repository ufficiale non mette in evidenza le istruzioni di containerizzazione in primo piano. Dopo aver installato le dipendenze, avrai bisogno di un server web (Apache o Nginx) e un database MySQL.
Sfumature Tecniche ed Eredità
Il repository ha attualmente il branch 9.x attivo. Questo è importante perché la transizione dalla 8.x alla 9.x è stata piuttosto dolorosa a causa degli aggiornamenti dell'interfaccia e dei cambiamenti nelle librerie interne. Se hai ereditato un progetto su una versione vecchia, il repository ha branch separati per 8.5.x e persino 5.7.x.
Punto interessante: Concrete CMS non nasconde la sua età. Il repository esiste dal 2014, e il sistema stesso è ancora più vecchio. Questo fornisce stabilità, ma a volte puoi incontrare nel codice soluzioni che sembrano pesanti secondo gli standard attuali. D'altra parte, il progetto ha quasi 500 Issue aperte. Questo può intimidire, ma se guardi più da vicino — c'è una discussione attiva su bug e nuove funzionalità, il che per un progetto Open Source è più un buon segno che uno cattivo.
Per Quali Compiti È Adatto
Non consiglierei di usare Concrete CMS per una landing page piccola — spenderai più tempo a configurare l'ambiente che a costruire il sito effettivo. Ma funziona benissimo in questi casi:
- Siti web aziendali complessi dove diversi reparti gestiscono i contenuti.
- Intranet e portali interni con tonnellate di permessi di accesso.
- Progetti dove è criticamente importante per il cliente vedere le modifiche al testo immediatamente nel design, non nel pannello di amministrazione.
Verdetto: Dovresti Provarlo
Se sei stanco delle limitazioni dei CMS popolari ma Symfony CMF ti sembra un toolkit eccessivamente complesso, Concrete CMS è un'onesta via di mezzo. Ha una curva di apprendimento, e la documentazione a volte ti fa sudare, ma la flessibilità che fornisce "out of the box" spesso ripaga il tempo investito.
Il modo migliore per iniziare è esplorare la loro documentazione, e se qualcosa va storto — controlla il forum. La community lì non è vasta come quella di WordPress, ma è più orientata all'ingegneria e reattiva.
Progetti correlati