Capire la Joomla!Platform

Nell’ annuncio ufficiale del rilascio di Joomla 2.5 si può notare la dicitura che è stata usata l’ultima versione della Joomla!Platform la 11.4. Il termine Joomla!Platform è relativamente nuovo, cerchiamo di capire un pò meglio cosa vuol dire.
Capire la Joomla!Platform Copyright (c) 123RF Stock Photos

La Joomla!Platform è stata introdotta per la prima volta con il rilascio di Joomla! 1.6 nel mese di gennaio 2011, anche se la notizia è passata abbastanza in sordina, comunque nell’ambiente degli addetti ai lavori, già se ne parlava dai tempi della 1.0.

La definizione ufficiale è: “Joomla!platform è il software development framework con cui è stato scritto il CMS Joomla!” a partire dalla versione 1.6, credo che la definizione ai più non aggiunga molto, con qualche esempio forse riesco a spiegarmi meglio, pensate al kernel LINUX, possiamo tranquillamente asserire che Ubuntu piuttosto che OpenSuse o qualsiasi altra distro usano il kernel Linux, quindi, Joomla il CMS stà alla Joomla!Platform come Ubuntu stà al kernel Linux.

jplatform

Questa “separazione” tra Joomla il CMS e la Joomla!Platform, infatti anche il ciclo di rilascio è diverso, spalanca le porte degli sviluppatori in quanto non sono più limitati dalle “restrizioni” del CMS, ma ad esempio, possono fare un’ altro CMS diverso da Joomla un pò come nell’esempio precedente delle “distro” linux, oppure creare delle “app” applicazioni appunto basate sulle classi della Joomla!Platform, che possono anche interfacciarsi con il vostro sito in Joomla, le possibiltà che si aprono sono enormi.

In termini di codice possiamo dire che la Joomla!Platform è contentua nella cartella \libraries della release di Joomla. Fondamentalmente ci sono due tipi di applicazioni che si possono gestire con la Joomla!Platform le cosidette CLI Command Line Interface e le classiche WEB application. Come già accennato, lo stesso Joomla! 2.5 il CMS è il più classico esempio di WEB application costruito utilizzando la Joomla!Platform.

Gli sviluppatori della Joomla!Platform hanno messo a disposizione anche alcuni esempi di app che sono liberamente disponibili su github, come potete notare sono stati suddivisi in due cartelle CLI e WEB appunto.

Analizziamo un pò più in dettaglio la categoria CLI, in quanto per le WEB app il CMS Joomla! si autoreferenzia come esempio. Partiamo dalla definizione: “CLI è l’abbreviazione di Command Line Interface cioè Interfaccia da Linea di Comando, una modalità di accesso al sistema attraverso un interprete per comandi testuali; questi comandi sono espressi essenzialmente attraverso delle stringhe alfanumeriche che possono essere eseguite da altre applicazioni.” questa modalità se non ricordo male è disponiblie per PHP a partire dalla 4.2.0, per approfondire l’argomento vi invito a leggere questo articolo.

Quindi dipendentemente dal sistema operativo che usate la CLI può essere Terminal su MAC-OS, Prompt dei comandi in Windows (cioè il buon vecchio MS-DOS per chi ne ha memoria), oppure la Shell per i sistemi Unix-like. In questo articolo utilizzerò Windows e come WAMP la verisione 1.7.4 di XAMPP ma non dovrebbero esserci molte differenze con altri WAMP.

Nella versione di Joomla! 2.5 è inclusa una applicazione CLI, la trovate in cli\finder_indexer.php, che serve ad indicizzare il contenuto del vostro sito per essere utilizzato con il nuovo componente Smart searcher, per maggiori dettagli leggete l’articolo sulle nuove features introdotte in Joomla!2.5.

Vediamo come eseguirla: per prima cosa lanciamo il prompt dei comandi, settiamo le variabili di ambiente nel mio caso devo digitare @set PATH=%PATH%;d:\xamp174\xampp\php, e verifichiamo che tutto sia ok cioè che’interfaccia CLI-PHP sia attiva digitando php-v

art2Fatto cio siamo pronti ad eseguire la nostra app CLI finder_indexer mediante il comando php finder_indexer.php

art3

Ed ecco il risultato, ovviamente per provarlo sulla vostra macchina dovete cambiare i path usati per rispecchiare la vostra configurazione.

In conclusione le CLI app sono un potente strumento, per eseguire ad esempio task piuttosto lunghi, che per loro natura appunto non è bene eseguire via Web, tra l’altro, una caratteristica molto utile è la possibilità di essere schedulati per essere eseguiti ad esempio via CRON a determinati orari e/giorni. Spero di avervi chiarito le idee circa la Joomla!Platform, sono sicuro che a breve ne vedremo delle belle “app”, giusto il tempo che gli sviluppatori di estensioni ne comprendano appieno le enormi potenzialità.

Comments on this post