Smau milano 2012 massimiliano del cero

Post on 21-Jun-2015

1.477 views 0 download

Transcript of Smau milano 2012 massimiliano del cero

Y Entities Persistent System

Roberto ScanoMassimiliano Dal Cero

Stefano Fratepietro

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

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

•economicità

•diffusione di hosting che lo supportano

• linguaggio noto in larga scala

OBIETTIVI

*velocità*

*libertà*

*flessibilità*

*semplicità*

* sicurezza*

*rilasciarlo sotto licenza GPL*

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

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

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

SEMPLICITÀ

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

• widget pronti e dedicati per ogni personalizzazione

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"

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

STRUTTURA #1

STRUTTURA #1 PUBLIC

STRUTTURA #2 PRIVATE

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)

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

$[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

gti (get image)

flusso del template controllato da tag xml

Controller con il codice strettamente necessario

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

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

widget di backend(estendibili)

ESEMPI D’USO

ESEMPI D’USO

TEMPLATING

Main template View Template

HTML

richiama

TEMPLATING

box da innestare nel main template

associazione al main template

COSA MANCA ?

• ACL a grana fine

• Refactoring

• Cache system

• Completare la parte dei componenti

• Component center

• API stabili

• Entity History

• ...

QUANDO ?

Primo rilascio previsto per il primo quarto del

2013

DOMANDE ?

Y Entities Persistent System