last update: 26/ january / 2005

DaDaBIK

[Quando si decide di recensire un programma è sempre difficile parlarne in modo obiettivo, spesso si finisce per essere troppo entusiasti e chi legge la recensione ha l' impressione di trovarsi di fronte ad un articolo "di parte"; altre volte si esagera con le critiche negative e si finisce con lo scrivere una stroncatura. Spero seriamente che l'articolo che segue possa risultare sufficientemente obiettivo da stimolare la vostra curiosità senza indurvi a preconcetti.]


Un po di tempo fa stavo cercando di decidere come sviluppare un piccolo database che lavorasse principalmente sotto GNU/Linux. In realtà mi sono subito reso conto che, rispetto ad ogni altra soluzione, avrei preferito un sistema multipiattaforma e quindi mi sono orientato ad uno sviluppo con la classica terna di strumenti composta da Apache, MySQL e PHP. Ho avuto molti dubbi prima di prendere questa strada in quanto pensavo che un applicativo dedicato sarebbe stato molto più leggero (e quindi veloce) e le mie necessità erano in fondo basilari. Alla fine ho concluso che tanto valeva pensare in grande e creare un template per tutti i futuri database che avrei creato. Questo strato di base sarebbe stato anche un bel pacchetto da distribuire con GPL.
Dopo aver completato un po di lavoro mi sono casualmente imbattuto in DaDaBIK un applicazione che era praticamente il risultato di quanto stavo cercando di realizzare. Ho trovato l' applicativo particolarmente stabile e utile per cui ho deciso di dedicargli questo articolo.

Come descrive la presentazione nella home page, DaDaBIK è un applicazione web-based, scritta in PHP, che permette la facile realizzazione di interfacce per database MySQL. Fornisce le operazioni di base di ricerca, inserimento, modifica e cancellazione dei records [esempio in fig. 1].

Screenshoot 1

Tali funzioni vengono implementate senza la necessità da parte dell'utente di scrivere una sola riga di codice. DaDaBIK vuole infatti permettere alle persone non esperte di programmazione di incorporare nelle loro pagine web dei database fornendo degli strumenti per manipolare l' interfaccia di base e, attraverso essa, l'accesso ai dati. [fig.2]

Screenshoot 2

Viene ipotizzata la figura di un "amministratore" che nulla ha a che vedere con il sysadmin del sito web o con l'amministratore del database; si tratterà dell'utente esperto o web designer che ha il compito di preparare per gli altri l'interfaccia di accesso ai dati. Bisogna, a questo punto, precisare che DaDaBIK non offre nessuno strumento di manipolazione dei database (un ottimo tool per questo scopo è phpMyAdmin) in quanto si prevede che il database e le tabelle su cui si andrà a lavorare siano preesistenti. Questo potrebbe essere visto da alcuni come un limite ma a mio parere è semplicemente una chiara visione su quali sono gli obiettivi del programma.
L'amministratore sopra definito ha fra gli altri il compito di decidere quali delle tabelle del database devono essere incluse nell'interfaccia per gli altri utenti e quindi visibili attraverso di essa. Nella gestione delle tabelle troviamo quello che potrebbe essere un neo del programma ovvero l'impossibilità di creare un alias per il nome della tabella. Questo impone di creare dei nomi significativi per le tabelle fin dall'inizio, cosa che in fondo potrebbe anche non essere un problema se costruite dei database da zero ma che può diventare antipatica per i database già esistenti. Comunque anche se avete dei database con dei nomi di tabella tipo tab_cpl_clnt_azie non disperate in quanto quella del supporto agli alias delle tabelle è una delle migliorie più richieste e quindi è molto probabile possa essere presente in futuro.

L'alias è invece ampiamente supportato per i singoli campi di ciascuna tabella elementi per i quali le possibilità di gestione sono molto più ampie. Oltre alla loro visibilità, per esempio, è possibile definire la tipologia del campo (definito "content type") implementando automaticamente il controllo dei valori inseriti. Per essere più chiari se un campo viene definito come numerico ed in esso, durante l'utilizzo, vengono inserite delle lettere il programma non validerà l' input e chiederà il reinserimento dei dati. Oltre ai campi di tipo numerico, alfanumerico, alfabetico e numeri di telefono sono supportati:

  • gli url: che vengono mostrati come link che condurranno effettivamente all'url inserito
  • gli indirizzi mail che permettono di gestire url di tipo [mailto:]
  • campi html il cui contenuto viene mostrato correttamente formattato
Oltre alla tipologia del campo è possibile definire il tipo di interfaccia (definita "field type"), dove accanto ai soliti campi di tipo testo, password o area di testo vi sono dei tipi di campo un po' più sofisticati; vediamo alcuni esempi:
  • definendo un campo come data viene mostrata un interfaccia per la selezione della data composta da tre liste a discesa(giorno mese e anno)
  • se un campo viene definito come immagine viene permesso l'upload delle immagini (ammesso che abbiate settato correttamente i permessi della cartella di upload) che vengono poi visualizzate all'interno del campo quando si passerà alla modalità di visualizzazione.
  • se un campo è definito come file ne verrà permesso l'upload e poi il successivo download quando si passerà in modalità di visualizzazione
  • Sono permessi poi gli elenchi di valori sia fissi (inseriti nella definizione del campo) sia dipendenti da altre tabelle


Il programma supporta anche una minima forma di autentificazione in quanto è possibile permettere la visualizzazione, la modifica e la cancellazione di un record solo all'utente che lo ha caricato. Per includere tali possibilità vanno abilitate le corrispondenti voci del file di configurazione. Ovviamente la creazione degli utenti è riservata all'amministratore.

L'installazione è relativamente semplice ma, le istruzioni sono in lingua inglese e questo potrebbe mettere un po in difficoltà alcuni utenti. I files del programma sono scaricabili dal sito sourceforge. I prerequisiti del programma sono alla portata di tutte le distribuzioni più recenti: richiede una versione di PHP 4.05 o maggiore ed è considerato compatibile con MYSQL 3.23.x e superiori.

Personalmente ho provato il programma su una Fedora Core 2, con una grande facilità, semplicemente scompattando i files nella cartella opportuna e accedendo alla "home page" del programma. Questo mi ha permesso di verificare all'istante il coretto funzionamento del tutto. Chiaramente le cose hanno avuto un maggior senso dopo avere adeguatamente modificato un minimo di voci nel file di configurazione. Portatevi quindi nella cartella del programma ed individuate nella sottocartella ./program_files/include/ il file config.php : in questo file inserite (dove richiesto) il nome o l'indirizzo ip dell'host che contiene il server mysql a cui vi appoggiate, lo username (ovvero nome utente) utilizzato per la connessione, il nome del database da connettere, e l'indirizzo per il sito web. Vi sono altre variabili configurabili ma quelle elencate sono sufficienti per verificare il funzionamento del tutto.
Per completezza di informazioni devo dire che testandolo sotto Windows ho avuto problemi con l'ultima versione (1.7) di EasyPHP in quanto venivano segnalate delle mancate inizializzazioni di variabili. Non ho riscontrato il problema sotto Linux ne con la versione precedente di EasyPHP (N.B. uno scambio di mail con l'autore del programma mi ha confermato che il problema è già stato risolto e non sarà presente nella prossima release).

Mi sembra doveroso avvisare che DaDaBik aggiungerà delle tabelle al vostro database quindi, se avete un database già operativo in ambiente di produzione e non desiderate "sporcarlo" con tabelle aggiuntive, eseguire i test in un ambiente di prova è un obbligo.

Il programma è multilingua e sono supportati inglese, italiano, tedesco, olandese, spagnolo e francese. In realtà su questo punto ho incontrato un paio di pecche:

  • Le pagine di amministrazione sono (per scelta degli autori) in lingua inglese e non vengono modificate dall'impostazione della lingua.
  • Non mi risulta sia possibile internazionalizzare i nomi delle tabelle o i nomi dei campi (sarebbe possibile sfruttando gli alias). Cosa che può risultare noiosa a chi come me ha deciso di sviluppare non delle pagine web ma un applicativo e quindi pensa alla sua portabilità nelle varie lingue. Sarebbe stato comodo un supporto all'internazionalizzazione che permettesse di rendere dinamiche le etichette sui campi e sulle tabelle.
Chiaramente tali limiti non toccano coloro che non avessero necessità di un supporto multilingua sullo stesso database.

Il sito di dadabik offre un buon supporto attraverso il "support forum". Mi sono trovato di fronte ad un paio di problemi che erano già stati riscontrati da altri ed ho trovato le risposte con una semplice ricerca negli argomenti già trattati.

Vediamo quindi di riassumere quelli che considero i pro e i contro di questo programma...
Pro: Contro:
Facilità di installazione Istruzioni solo in inglese
Facilità d'uso Non ben strutturato per il supporto multilingua
Stabilità Non supporta (ancora) l'alias sui nomi delle tabelle
Buon supporto Le istruzioni sono ridotte all'essenziale

Spero di avervi incuriosito a sufficienza da indurvi a provare il programma che a mio parere ha buone potenzialità e merita di poter crescere. La sua semplicità d'uso ` la sua caratteristica migliore e toglie un ostacolo all'implementazione di tabelle dinamiche all'interno delle pagine web.

di Rudi Giacomini Pilon