Smau milano 2012 massimiliano del cero

29
Y Entities Persistent System Roberto Scano Massimiliano Dal Cero Stefano Fratepietro

Transcript of Smau milano 2012 massimiliano del cero

Page 1: Smau milano 2012 massimiliano del cero

Y Entities Persistent System

Roberto ScanoMassimiliano Dal Cero

Stefano Fratepietro

Page 2: Smau milano 2012 massimiliano del cero

PERCHÈ È NATO (... STA NASCENDO)

• troppi vincoli espressivi negli altri prodotti

• necessità di maggior velocità di sviluppo

• necessità di avere non solo post e pagine

• necessità del multi lingua nativo

• unire le caratteristiche di differenti prodotti in un unica soluzione

• semplicità per l'end-user

Page 3: Smau milano 2012 massimiliano del cero

PERCHÈ PHP(SAPPIAMO CHE ESISTONO ALTRE TECNOLOGIE ANCHE MIGLIORI)

•economicità

•diffusione di hosting che lo supportano

• linguaggio noto in larga scala

Page 4: Smau milano 2012 massimiliano del cero

OBIETTIVI

*velocità*

*libertà*

*flessibilità*

*semplicità*

* sicurezza*

*rilasciarlo sotto licenza GPL*

Page 5: Smau milano 2012 massimiliano del cero

VELOCITÀ( DI SVILUPPO E DEPLOY )

• veloce perchè si lavora con html che facilmente e velocemente si trasforma in template personalizzati

• fast deploy: un installer rapido e facile esportazione/importazione da un host ad un altro

Page 6: Smau milano 2012 massimiliano del cero

LIBERTÀ( DI PERSONALIZZAZIONE )

• facile e veloce configurazione con config.xml da impostare

• Templating xml in stile JSTL e Tails

• Tag estendibiili

•Web-designer friendly : Nessun codice nella gestione del template

Page 7: Smau milano 2012 massimiliano del cero

FLESSIBILITÀ( DI GESTIONE DEI CONTENUTI )

• Entità estendibili tramite un descrittore xml

• Gestione delle liste e tassonomie sempre tramite xml

• Accesso veloce alle entità da integrare nel template

Page 8: Smau milano 2012 massimiliano del cero

SEMPLICITÀ

• l'end-user si ritrova un pannello di amministrazione mirato alle sue esigenze

• widget pronti e dedicati per ogni personalizzazione

Page 9: Smau milano 2012 massimiliano del cero

SICUREZZA• Tutto gestito da un ORM (Doctrine), nessuna query

SQL utilizzata direttamente

• Catena della request http regolata da regular-expression

• $_REQUEST processata e “purificata” da un “agente” (as a service) e si userà l’oggetto YRequest al suo posto

• Pre-rendering del codice html generati: quindi possibilità di analisi del codice in uscita da un “agente” (as a service) per “purificarlo”

• Due livelli di accesso alle risorse (possibilità di mettere read only il livello interno delle librerire, modelli, controller, templates)

• prossimamente:"components center" che permetterà di avere un luogo dove risiederanno solamente i componenti "verificati"

Page 10: Smau milano 2012 massimiliano del cero

DOVE USARLO• Con l’installazione di base lo si può

utilizzare in un contesto semplice come un blog

• Ma, essendo strutturato a più livelli dedicati, si integra bene in realtà più complesse quale una web-agency dove convivono ruoli e competenze differenti:

• web-designer,

• sviluppatore del modello,

• sviluppatore della UI,

• SEO specialist

Page 11: Smau milano 2012 massimiliano del cero

STRUTTURA #1

Page 12: Smau milano 2012 massimiliano del cero

STRUTTURA #1 PUBLIC

Page 13: Smau milano 2012 massimiliano del cero

STRUTTURA #2 PRIVATE

Page 14: Smau milano 2012 massimiliano del cero

Request HTTP

proxyStatic rsc

Mai

n C

ontr

olle

r

page controller

reg-

ex c

hain

FAILfail controller

output controller FAIL

template

template

data

template compiler

Entities (model)

Page 15: Smau milano 2012 massimiliano del cero

Controllo url basato su regex

multilingua nativo

gestione labeldel sito “key-value”

multilingua

gestione liste e tassonomie

gestione del template

gestione delle entity di modello

generazione url semantici

Oggetto dedicato alla transliterazione dei parametri

tra graffe

Page 16: Smau milano 2012 massimiliano del cero
Page 17: Smau milano 2012 massimiliano del cero

$[x] => n-esimo elemento tra parentesi tonde della regular-expression

#[x] => n-esimo elemento dell'url in lingua dentro al tag <it> o <en> nel mapping xml dei controller

%[x] => n-esimo elemento dell'url passato al ytag

@[x] => n-esimo elemento dell'url dell'address bar ( /prima/secondo/terzo/ )

${...} => per ogni ${...} chiedo al "Translator" di ridarmi il valore corretto

Page 18: Smau milano 2012 massimiliano del cero

gti (get image)

flusso del template controllato da tag xml

Controller con il codice strettamente necessario

Page 19: Smau milano 2012 massimiliano del cero

ovviamente c’è anche la versione semplificata per la gestione di una pagina

Page 20: Smau milano 2012 massimiliano del cero

ovviamente c’è anche la versione semplificata per la gestione di una pagina

Page 21: Smau milano 2012 massimiliano del cero

widget di backend(estendibili)

Page 22: Smau milano 2012 massimiliano del cero

ESEMPI D’USO

Page 23: Smau milano 2012 massimiliano del cero

ESEMPI D’USO

Page 24: Smau milano 2012 massimiliano del cero

TEMPLATING

Main template View Template

HTML

richiama

Page 25: Smau milano 2012 massimiliano del cero

TEMPLATING

Page 26: Smau milano 2012 massimiliano del cero

box da innestare nel main template

associazione al main template

Page 27: Smau milano 2012 massimiliano del cero

COSA MANCA ?

• ACL a grana fine

• Refactoring

• Cache system

• Completare la parte dei componenti

• Component center

• API stabili

• Entity History

• ...

Page 28: Smau milano 2012 massimiliano del cero

QUANDO ?

Primo rilascio previsto per il primo quarto del

2013

Page 29: Smau milano 2012 massimiliano del cero

DOMANDE ?

Y Entities Persistent System