Lezioni di PHP - Parte 3 - Creazione della propria CMS
La creazione di siti web basati su CMS non si limita solo a Drupal, Joomla o Wordpress. In realtà, la maggior parte dei siti al mondo è costruita su CMS personalizzati. Nonostante esista già una grande quantità di codice scritto in PHP, gli sviluppatori spesso preferiscono utilizzare le proprie soluzioni. Cerchiamo di capire perché può valere la pena creare una CMS propria.
Sì, esiste Drupal, un potente sistema con un gran numero di moduli, hook e funzioni per creare moduli personalizzati. Molti sanno scrivere i propri moduli, ma quanti si occupano effettivamente dello sviluppo del core di Drupal stesso? Probabilmente avrai letto che Drupal è il risultato del lavoro di centinaia, se non migliaia, di programmatori. Tuttavia, vediamo più da vicino chi lo sviluppa realmente.
Nella pagina di download di Drupal c’è un blocco con l’elenco degli sviluppatori che lavorano sul core, cioè sulla CMS vera e propria.
drupal.org/node/3060/committers?sort=desc&order=Commits
Su questa pagina trovi anche la lista dei programmatori che hanno contribuito con modifiche al core. Ecco un estratto dell’elenco:
Sviluppatore | Ultima modifica | Prima modifica | Numero di commit |
---|---|---|---|
Dries | 3 giorni fa | 11 anni fa | 10.501 commit |
webchick | 5 giorni fa | 3 anni fa | 3.108 commit |
Gábor Hojtsy | 2 giorni fa | 4 anni fa | 1.635 commit |
Steven | 4 anni fa | 11 anni fa | 1.156 commit |
drumm | 1 anno fa | 5 anni fa | 764 commit |
Vediamo alcuni dei principali contributori:
Dries (10.000 commit) – nome completo Dries Buytaert, fondatore del progetto Drupal. Come puoi vedere, il progetto ha ormai più di 11 anni. Dries ha fondato anche l’azienda Acquia, che si occupa di supporto tecnico per siti Drupal (a pagamento, a differenza del CMS stesso), oltre a contribuire allo sviluppo del core e dei moduli. In un’intervista Dries ha dichiarato di non occuparsi più direttamente della programmazione del core, ma di gestire principalmente Acquia. Il gran numero di commit deriva dal fatto che riceve patch già pronte e le integra personalmente.
webchick (3.000 commit) – nome completo Angie Byron, sviluppatrice principale di Drupal 7. Ha lavorato (o lavora ancora) per Lullabot, anche se nel suo profilo su drupal.org viene indicato che per collaborazioni professionali bisogna contattare Acquia. Angie è anche l’autrice di Drush, la suite di strumenti da riga di comando per Drupal. Oggi è una delle figure di spicco dello sviluppo di Drupal.
Gábor Hojtsy – sviluppatore principale della versione 6 di Drupal e responsabile dell’internazionalizzazione e traduzione nella versione 7.
Naturalmente ci sono anche altri sviluppatori del core, che si occupano di parti specifiche del sistema, ma questi sono i principali. Quindi, anche se si dice che Drupal sia il frutto del lavoro di migliaia di sviluppatori, in realtà il core è opera di poche persone. In altre parole, anche le CMS più grandi vengono sviluppate da piccoli gruppi.
Torniamo ora alla domanda iniziale: perché creare una CMS propria? Ricordi quanto tempo ti è servito per imparare Drupal? Ebbene, ad alcuni programmatori serve meno tempo per scrivere una CMS personale che per imparare ad usare una complessa come Drupal.
PHP è un linguaggio relativamente semplice rispetto ad altri, e scrivere codice in esso è alla portata di molti. Certo, col tempo sarà necessario approfondire le proprie conoscenze per scrivere una CMS scalabile, ma per ora vediamo i vantaggi di crearne una da zero:
1. Sai sempre dove si trova tutto. Quante volte hai letto il codice di taxonomy.module o comment.module? Probabilmente non spesso. Il codice è scritto, le funzioni documentate e i template sovrascrivibili. Ma se si presenta un problema o un bug? Dovresti scrivere su drupal.org e aspettare che gli sviluppatori rispondano? Non è sempre la soluzione ideale.
2. Prestazioni elevate. È risaputo che Drupal non è il CMS più veloce e genera molte query al database. Una CMS personalizzata, se ben scritta, può essere molto più rapida. Tuttavia, Drupal offre moduli per caching e ottimizzazione, quindi questo problema si manifesta soprattutto sugli hosting condivisi.
3. Totale libertà. Puoi modificare il core come preferisci, senza dover attendere il rilascio di nuove versioni per applicare le tue modifiche. Hai pieno controllo sul tuo codice.
Certo, ci sono anche degli svantaggi, ma... non è necessario parlarne ora. Tutti sappiamo già che Drupal è un’ottima piattaforma. Qui vogliamo solo capire come e perché creare qualcosa di nostro.
E quindi, hai deciso di scrivere la tua CMS. Cominciamo.