Pagina 1 di 1

Bokeh Platform

Inviato: 18/07/2012, 22:38
da Carlo
Voglio parlarvi del mio progetto, Bokeh Platform un framework PHP completamente Open Source per lo sviluppo di siti web in modo facile e veloce.

Il progetto ha preso vita più di un anno fa, ma causa tempo non ho mai potuto completarlo.
Ad oggi, è ancora alla versione beta. Questa mattina ho rilasciato la quinta versione beta.
Vi sono già molti bug e nuove idee per miglioramenti per la sesta versione beta.

Le principali caratteristiche di questo framework:
  • Le pagine sono costituite da controller.
  • Supporto di siti web multi-lingua.
  • Possibilità di sfruttare diverse tipologie di database, anche se per il momento è presente il supporto solo per MySQL. L'uso del database è opzionale per l'uso del framework.
  • Il template engine utilizzato è Smarty 3. Quest'ultimo offre anche un interessante funzione di caching.
  • Possibilità di espandere le funzionalità del framework scaricando ed installando plugin sviluppati dalla comunità.
Per ulteriori informazioni sul framework: http://www.bokehteknology.net/index.php ... h_platform
(il sito stesso sfrutta il framework, da aggiornare all'ultima versione rilasciata oggi)

Il progetto è aperto a chiunque voglia contribuire.

Lo sviluppo avviene attraverso repository Git hostato su GitHub: https://github.com/bokehteknology/Bokeh-Platform

Per la segnalazione di bug, miglioramenti e nuove caratteristiche, il tracker è disponibile qui: http://tracker.bokehteknology.net/


Inoltre, dalla quinta beta (in quanto è stata introdotta la possibilità di collegarsi ad un nostro server API) è possibile utilizzare un plugin da me sviluppato in questi giorni (il plugin è anch'esso una beta) per installare, aggiornare e rimuovere plugin attraverso un pannello web.
Il plugin, essendo nella fase di test non è stato ancora introdotto nel framework.
E' pertanto scaricabile dal repository GitHub: https://github.com/carlino1994/bp_plugin_manager

Re: Bokeh Platform

Inviato: 19/07/2012, 0:36
da Lady R
non ho capito cos'è Smarty.. E nel sito ufficiale non ci capisco niente.

Comunque carina come idea.

Re: Bokeh Platform

Inviato: 19/07/2012, 8:17
da Carlo
Smarty è un template engine che permette di lavorare con i template senza usare direttamente il PHP, ma usando appositi costrutti per fare controlli, cicli, ecc... nei template (tipo come accade con phpBB).

Il framework, è composto da controller, che ne permettono la stesura di pagine in modo veloce.

Scaricato il framework, inizialmente occorre modificare il file config.php con l'opportuna configurazione.
E' possibile disabilitare l'uso di un database se non serve per il proprio sito web.
E' possibile abilitare/disabilitare la modalità debug che mostra errori PHP.
E' possibile abilitare/disabilitare globalmente i plugin, ed è possibile specificare quali plugin installati abilitare.

Successivamente, per lo sviluppo di una pagina, è necessario creare un controller. Esso è composto da una classe contenente diversi metodi che compongono le sotto pagine del controller.
Un esempio di controller è disponibile QUI.

Il file del controller deve essere chiamato per esempio default.php.
All'interno ci deve essere una classe chiamata controller_default, e deve contenere un metodo chiamato controller_default per poter definire alcune variabili globali del controller.

Successivamente, si procede con la creazione delle pagine. E' obbligatorio che vi sia un metodo index, il quale specifica la pagina principale del controller. Esempio:

Codice: Seleziona tutto

	function index()
	{
		page_header('HOME');
		_template('home_body');
		page_footer();
	}
  • Attraverso page_header() specifichiamo il titolo della pagina e mostriamo l'header. In questo caso, il titolo specificato è HOME tutto in maiuscolo. Ciò specifica al framework, che deve utilizzare il valore della variabile di lingua HOME definita nell'apposito file all'interno della cartella languages.
  • Attraverso _template() specifichiamo il template del corpo della pagina e lo mostriamo.
  • Attraverso page_header() mostriamo il footer della pagina, inviamo tutti i dati all'utente e chiudiamo eventuali connessioni al database.
La pagina principale sarà raggiungibile da due URL:
http://www.miosito.it/index.php/default
http://www.miosito.it/index.php/default/index


Per creare altre pagine nel controller basterà creare un altro metodo, senza parametri, con il nome della pagina che vogliamo creare. Per esempio, creando un metodo ciao, sarà raggiungibile da:
http://www.miosito.it/index.php/default/index


Per poter passare variabili al template, dobbiamo usare: $smarty->assign('nome_variabile', 'valore');
Nel template, la variabile è richiamabile con: {$nome_variabile}


Come già detto, il framwork presenta la possibilità dell'uso di siti multi-lingua. Ciò avviene rilevando la lingua del browser dell'utente, e mostrando il sito nell'opportuna lingua. Se il file di lingua non esiste, viene caricato il file di lingua inglese.

Re: Bokeh Platform

Inviato: 19/07/2012, 8:25
da Lady R
non mi piace molto questa cosa di smarty, credo sarebbe stato meglio creare qualcosa da zero. Magari più simile a Joomla.

In fondo sappiamo tutti che tra i template di phpBB e quelli di Joomla non c'è proprio storia, Joomla vince su tutti i fronti.
Sarebbe anche stato qualcosa di meno pieno di funzioni che magari non verranno usate e sarebbe stato più integrato.

Poi riguardo al multilingua direi che sarebbe meglio poter scegliere la lingua di fallback senza dover per forza usare l'inglese.

Re: Bokeh Platform

Inviato: 19/07/2012, 8:49
da Carlo
Lady R ha scritto:non mi piace molto questa cosa di smarty, credo sarebbe stato meglio creare qualcosa da zero. Magari più simile a Joomla.
Inizialmente, sviluppai un template engine io stesso, ma alcuni controlli utilizzando IF, ELSE, ELSEIF, ecc, mi davano problemi.

Poi ho conosciuto Smarty, che ho notato essere utilizzato da altri prodotti.
E' anche semplice il suo utilizzo.
Darò un occhiata al template engine di Joomla.

Lady R ha scritto:In fondo sappiamo tutti che tra i template di phpBB e quelli di Joomla non c'è proprio storia, Joomla vince su tutti i fronti.
Ma non è lo stesso utilizzato da phpBB.

Lady R ha scritto:Poi riguardo al multilingua direi che sarebbe meglio poter scegliere la lingua di fallback senza dover per forza usare l'inglese.
Lingua di fallback?

Re: Bokeh Platform

Inviato: 19/07/2012, 9:00
da Lady R
lingua di fallback è la lingua che viene caricata nel caso manchi la propria lingua.

so che non è quello di phpBB, ma hai detto che è molto simile.

Re: Bokeh Platform

Inviato: 19/07/2012, 13:48
da Carlo
Per la lingua di fallback, ho segnato l'idea nel tracker, e la introdurrò per la prossima. Grazie per l'idea. :)

Per fare un semplice controllo tra valori interi, e mostrare del testo si fa così:

Codice: Seleziona tutto

{if $numero == 5}il numero inserito è 5{/if}

EDIT: Ho controllato Joomla, ed ho notato che usa direttamente il codice PHP nei template.

Re: Bokeh Platform

Inviato: 19/07/2012, 14:28
da Lady R
si infatti, però si utilizza il framework di Joomla per inserire moduli.

In pratica in Joomla i template contengono degli "include" che richiamano i moduli, ogni "include" si chiama "posizione".

Quindi quando crei un nuovo modulo (può essere uno slideshow, un menu, un modulo HTMl personalizzato, o qualunque altra cosa), indichi in che posizione farlo apparire, e in quali pagine vuoi che appaia.

In questo modo il template fa solo da contenitore, e il resto non è influenzato dal template come invece accade in phpBB.

Io sul mio sito potrei cambiare da un momento all'altro il template, e a patto che le posizioni dei moduli abbiano gli stessi nomi, mi ritroverò tutti i moduli nella pagina, con il nuovo template.

Ti consiglio di dare un'occhiata a qui per capire meglio:
http://demo.gantry-framework.org/index. ... &Itemid=55

Come vedi questo template (che è un framework per Joomla), ha tot posizioni modulo, che vengono gestite da Joomla.
Quindi tu puoi posizionare un modulo in una qualunque delle posizioni presenti in quella pagina se utilizzi un template basato su quel framework.

Gantry è open sources, potresti darci un'occhiata per vedere di fare qualcosa di simile, sarebbe il massimo ;)