Newsgroup: it.comp.www.php
Titolo: Un framework php, forse innovativo...

http://sourceforge.net/projects/gaiaweb30ide/
 
 
Eccolo, dopo tanto ho messo il codice su SourceForge
 
In realtà questa è la seconda versione, la prima la ho usata per i fatti 
miei ed aveva pure un editor visuale. Poi ho deciso di rifarlo perchè 
quello 'vecchio' per molti versi era molto sporco. ;P
 
Lo so che ci sono tanti framework in giro, talmente tanti che neanche ho 
avuto tempo di valutarli tutti.
 
Questo 'abbozzo' di framework penso sia particolare, soprattutto per 
l'approccio, in quanto tenta come molti di seguire la strada dell'MVC ma 
per certi versi esasperandola.
 
Per me che lo ho fatto ho dovuto rivedere il modo di 'pensare il php' 
però penso di aver messo le basi per qualcosa di interessante.
 
Spiego in poche righe come funziona : la base di tutto sono i 'webget' 
ovvero i widget per il web (per chi ha programmato applicazioni per il 
desktop), la maggiorparte di questi 'cosi' sono per ora cloni dei 
normali elementi HTML.
 
I webget vengono organizzati in 'viste' che altro non sono che documenti 
molto simili all'HTML.
 
Ad ogni vista è possibile associare un documento di codice dove con una 
opportuna sintassi nei commenti viene definito come legare questo codice 
ai webget.
 
I webget vengono 'intercettati' dal motore php e diventano codice anche 
molto complesso sul client.
 
Per esempio il webget label ha la proprietà halign e valign per 
l'allineamento all'interno del suo contenitore, oppure viene inviato al 
client con incluso il metodo javascript .caption() che consente sia di 
impostare che leggere il testo visualizzato. il tutto scrivendo nella 
vista :
 
<base:label id="mia_label" caption="Hello World!"/>
 
Poi questo framework ha anche altre belle cosette come la possibilità di 
scaricare codice javascript su richiesta con la pagina già caricata 
oppure implementa nativamente un socket ajax e uno schema di 
comunicazione che consente di chiamare classi php direttmente dal 
javascript.
 
Se a qualcuno può interessare, sia l'uso che lo sviluppo è il benvenuto!!!!
 
Ciao!!

 quello 'vecchio' per molti versi era molto sporco. ;P
 
Non l'ho provato installandolo, ma guardando i sorgenti ho visto un 
(forse) abuso di eval() che mi ha fermato dallo scaricarlo.
 
Bye.

"Found 79 occourrences of 'eval' in 32 of 51 files"


Hai parzialmente ragione ;P
 
Nel senso che in effetti ci sono dei punti che dovrei rivedere per 
trovare altre strade.
 
Altri 'eval()' sono necessari (sempre che qualcuno non ha idee migliori, 
per'altro benvenute!) proprio per la logica che sta dietro il funzionamento.
 
Infatti il 'motore' della applicazione legge un file XML dove è definita 
la struttura della 'view' e un file 'controller' associato.
Il file 'controller' contiene tutto il codice della 'view' e tramite 
l'uso di particolari commenti questo codice viene associato 
dinamicamente ai 'webget'. Questo codice in taluni casi deve essere 
'evalutato' in quanto fa parte del particolare concetto che ho chiamato 
'eventi sul server'

- Ho ripulito un po' il codice
- Non ho trovato alternative all'uso di eval
- Ho inserito un piccolo esempio.
 
Ciao!
 

Il 27/01/2012 06:41, Alessandro Pellizzari ha scritto:

Mmhm... non capisco perché si usa così spesso eval in php. Ho da poco 
finito di sviluppare un portale web e non ho mai usato (ne sentito la 
necessità di) eval.
Mi dite quali sono quelle cose che proprio non si riescono a fare senza 
usare eval, a parte eseguire codice on-the-fly (che non mi sembra 
comunque una gran bella mossa)?

 usare eval, a parte ese
 
Nel mio caso specifico ho la necessità di eseguire codice collegato alle 
viste che non è noto al cuore del framework. Infatti la struttura è il 
core del framework e uno o più progetti associati. I progetti sono 
costruiti con file XML con associato un file codice.
 
In javascript, potendo modificare gli oggetti al volo non ho avuto 
bisogno di usare eval, in php non ho trovato una funzionalità 
equivalente e quindi per associare codice non precedentemente noto sono 
stato costretto ad abusare di eval.
 
Ci sarebbe la possibilità anche di usare 'create_function' ma purtroppo 
il codice viene eseguito sono nel contesto globale (global scope) a me 
invece serve che il codice utente possa usare '$this' come riferimento 
al webget corrente che sta eseguendo il codice.