GlisWeb
 Tutto File Funzioni Variabili Pagine
Concetti generali di GlisWeb

Questa sezione tratta i principali concetti che sono alla base della piattaforma GlisWeb.

Standard e locale

Il primo concetto fondamentale da comprendere è la distinzione fra parte standard e parte locale del framework. GlisWeb infatti è organizzato in modo che gli sviluppatori possano ridefinire la maggior parte del framework stesso a seconda delle esigenze della specifica implementazione che stanno realizzando. Nella maggior parte dei casi questo si tradurrà nella definizione di valori diversi per alcune variabili; ma volendo è possibile riscrivere anche singole funzioni o intere librerie. Ovviamente più massiccie saranno tali riscritture "locali" del framework più approfondita sarà la conoscenza richiesta del framework stesso per effettuarle.

La parte "framework" è facilmente identificabile per il fatto che il nome di tutte le sue componenti nel filesystem (fatta eccezione per i files speciali, come ad esempio i files .htaccess) inizia per underscore. Ad esempio il file _src/_config.php è parte del framework mentre src/config.php è la sua controparte locale.

Inizio dell'esecuzione del framework

Per utilizzare il framework in una pagina php è necessario includerlo. L'inclusione e l'esecuzione del framework sono effettuate a partire dal file _src/_config.php che va incluso all'inizio della pagina stessa, ad esempio:

// livelli
$cf['folders']['levels'] = NULL;
// pagina corrente
$cf['folders']['page'] = NULL;
// il file di configurazione locale collega i files delle pagine al cms vero e proprio
require $cf['folders']['levels'] . '_src/_config.php';
// build della pagina
$cf['folders']['page']
);

Questo è il file più semplice che possiamo costruire nel framework GlisWeb. Le variabili $cf['folders']['levels'] e $cf['folders']['page'] vengono inizializzate in quanto occorrono al framework stesso per funzionare; dopodiché viene incluso il framework vero e proprio tramite l'istruzione require.

Riguardo alle due variabili di cui sopra, come si può vedere la prima è immediatamente necessaria per la costruzione del percorso di inclusione del file _src/_config.php; questo opera implicitamente un controllo di correttezza sul valore della variabile stessa, infatti essendo utilizzata per includere il framework se il suo valore è errato questo non viene neppure incluso e quindi non c'è modo di avviare il framework con un valore errato nella variabile $cf['folders']['levels'].

Riguardo invece alla variabile $cf['folders']['page'], si può vedere che è utilizzata come parametro per la funzione buildPage() la quale effettua la renderizzazione dell'output della pagina. Dettagli su questo punto si trovano nella documentazione della funzione buildPage() e dei files di configurazione.

Da fare:
individuare espressamente i files di configurazione più rilevanti su questo argomento

Moduli e sezioni

Il secondo concetto da assimilare prima di iniziare a lavorare con GlisWeb è il fatto che la piattaforma è strutturata concettualmente come una matrice. GlisWeb infatti è suddiviso in moduli, i quali sono a loro volta organizzati in sezioni. I moduli raggruppano le funzionalità della piattaforma in blocchi che possono essere attivati e disattivati a seconda delle necessità.

Le sezioni rappresentano i gruppi di caratteristiche e specifiche tecniche che compongono i moduli; possono essere viste come una suddivisione orizzontale rispetto ad essi che forma dunque una matrice intersecandoli. Questa struttura è rappresentata all'interno del framework dall'array bidimensionale $cf['mods'], come illustrato nella documentazione del file _src/_config.php.

sezione descrizione
debug debug della piattaforma
session gestione delle sessioni PHP
site configurazione generale della piattaforma
performances monitoraggio e settaggio delle performances della piattaforma
filesystem gestione del filesystem e dei files
commons impostazioni generali
localization localizzazione della piattaforma
mysql gestione e utilizzo di db MySQL
mssql gestione e utilizzo di db MSSQL
auth autenticazione utenti
user gestione e configurazione utenti
cache gestione e configurazione della cache
rewrite gestione e configurazione dell'url rewriting
pages configurazione e contenuto delle pagine della piattaforma
templates templates delle pagine della piattaforma
Da fare:
le sezioni user e auth potrebbero essere fuse in una futura release.

Step di esecuzione

Il terzo concetto realmente essenziale da tenere presente nell'utilizzo di GlisWeb all'interno di un progetto web è il modo in cui la piattaforma gestisce i files principali che la compongono (comunemente si fa riferimento a questi files con il termine "files di configurazione", ma è abbastanza riduttivo). In particolare, questi vengono inclusi, e quindi eseguiti, in un ordine specifico che rispetta la struttura a matrice del framework suddivisa in moduli e sezioni.

L'inclusione di questi files, che corrisponde in larga parte all'esecuzione stessa dello script, è organizzata in step successivi, ad ognuno dei quali sono associate determinate caratteristiche e funzioni. Per esempio, allo step 010 la connessione al database non è ancora disponibile, in quanto viene effettuata generalmente attorno allo step 120 (dipende da quale db utilizzate). Comprendere questi step è essenziale per collocare il proprio codice in quello giusto, in modo che disponga delle risorse necessarie e al tempo stesso non comprometta gli step successivi.

Organizzazione del file system

La gerarchia del file system della piattaforma rispecchia l'organizzazione interna del codice. Inizialmente è utile prendere confidenza con le cartelle del framework in modo da potersi muovere agilmente fra di esse quando si inizia a realizzare la propria implementazione.

cartella descrizione
_mods contiene i moduli del framework, uno per cartella; il nome delle cartelle corrisponde alle chiavi di $cf['mods']
_mods/*/_src contiene il codice del modulo
_mods/*/_src/_config contiene i files di configurazione del modulo
_src contiene il codice del framework base
_src/_ajax contiene pagine che possono essere chiamate in Ajax (webservice, ecc.)
_src/_bin contiene frammenti di codice che vengono inclusi nel corso dell'esecuzione del framework
_src/_config contiene i files di configurazione del framework base
_src/_lib contiene le librerie del framework base
_src/_templates contiene i templates standard del framework, uno per cartella
_var contiene files vari non necessari al funzionamento del framework
_var/_docs contiene le pagine extra della documentazione del framework
_var/_pages contiene pagine statiche di default del framework
_var/_version contiene i files informativi relativi alla versione corrente
mods cartella locale corrispondente a _mods
src cartella locale corrispondente a _src
tmp contiene i files temporanei del framework
var cartella locale corrispondente a _var
var/docs contiene la documentazione del framework
var/docs/html contiene la versione html della documentazione del framework
var/log contiene i files di log del framework

Flusso di esecuzione

L'esecuzione del framework è organizzata in tre grandi blocchi consecutivi (inclusione librerie, inclusione files di configurazione, render della pagina) come mostrato nello schema seguente. All'interno di ogni blocco vengono eseguiti degli specifici sottoinsiemi di operazioni anch'essi riportati in forma generale nello schema.

schemaGeneraleFunzionamentoApplicazione_rev01.png

Struttura del database

Il database MySQL standard del framework comprende le tabelle necessarie al modulo base. Ogni modulo opzionale ha un suo schema aggiuntivo collegato a quello del modulo base.

schemaDb.png