Newsgroup: it.lavoro.professioni.webmaster
Titolo: insalata di codice tra php e html

Mio malgrado sto tentando di dare ai miei 'clienti' ( i medici 
dell'istituto) quello che vogliono : portare sul sito web dell'istituto 
43 tabelle statiche. Ovviamente bidimensionali.
 
Dati i problemi connessi con l'helpdesk informatico dell'università 
(risposta solo dopo due giorni per domande connesse con autorizzazioni 
per MySQL sul server dell'università), ho deciso di non usare database 
ma array inizializzati nel codice.
 
E fin qui tutto bene.
 
Ho provato poi a mostrare le tabelle usando il php.
Ma vista l'insalata illeggibile di codice misto tra php e html (ogni due 
righe shifting tra un linguaggio e l'altro) nell'ingenuo tentativo di 
far entrare un semplice doppio loop :
 
while ($i < a) {
   while ($j < b)  {
	mostra  v[$i][$j];
   }
}
 
nello schema tabellare  <tr><td><?php  echo v[$i][$j]</td></tr>
(stando attenti a evidenziare titoli di colonna e di riga), ho deciso di 
soprassedere al problema e di occuparmi solo dell'array ad una 
dimensione, quella orizzontale, facendo le righe tutte 'a mano'.
 
Ora, in questo caso tutto va bene perchè le tabelle statiche hanno al 
massimo 15 righe.
 
Ma se uno dovesse avere il problema con un array di 50 x 60 ??
 
La mia domnda : è intelligente usare php + html per questo tipo di 
problema oppure si farebbe meglio a fare tutto in java ???
 
(escludendo volutamente l'asp per ragioni 'politiche').
 
 
NOTA : ho già cercato ausilio sul web, e la soluzione più intelligente 
che ho trovato è su 
www.terradesign.com/multidimensional.php
,
che per me rimane pur sempre 'oscena' come soluzione.
 
Sto cercando una soluzione facile e immediata, con poco codice, come 
quella che sarebbe farla con C# o VB .NET, però deve essere appunto per 
il web (SENZA usare asp, cioè un server IIS).
 
Grazie per i commenti / consigli.
 
 
 


 
sorry, errata corrige ;
 
 
il sito è  
www.terrawebdesign.com/multidimensional.php
 
 


 
La soluzione corretta è usare un sistema di template
Smarty e Twig sono ottimi sistemi per PHP, ce ne sono molti anche per 
Java ovviamente
Per quanto riguarda l'appoggiarsi ad un db, hai pensato a sqlite?
M
-- 
I cosi mi fattano

 M
 
mi stavo appunto chiedendo che cosa era esattamente sqlite. Che cosa 
offre in questo caso di più vantaggioso di MySQL  ?
 
 

> Smarty e Twig sono ottimi sistemi per PHP,
 
Sto guardandomi entrambi Smarty e Twig.
Hai aperto un nuovo orizzonte nella mia vita.  Grazie  :-)))
 


Figurati
Twig è più complesso per certe cose, ma imho è anni luce avanti rispetto 
a Smarty
Sqlite non offre di più, offre di meno e diverso.
Il db che crea è un file normale ed offre funzionalità anche abbastanza 
avanzate, ma non è pensato per usi "enterprise"
Se non puoi usare un db centralizzato ma vorresti avere un db potrebbe 
essere la scelta giusta per te
Occhio ai db
Se ti interfacci al db prova a valutare quallche libreria ORM. Si 
ripagano appena le cose diventano complesse.
Avevo fatto un lavoro microscopico usando redbean per php e mi era 
abbastanza piaciuto.
 
Ciao


 problema oppure si farebbe meglio a fare tutto in java ???
 
onestamente non vedo la differenza tra usare un linguaggio lato server
oppure un altro...
 
se non ti piace mischiare troppo php e output html potresti fare una
cosa del genere:
 
tab_html = '';
 
$tab_html .= '<table...>';
 
while($i < $righe) {
  $tab_html .= '<tr>';
  while ($j < $colonne) {
    $tab_html .= '<td>' . $array[$i][$j] . '</td>';
  }
  $tab_html .= '</tr>';
}
 
$tab_html .= '</table>';
 
echo $tab_html;
 
nulla vieta di scriverti una routinetta o proprio una classe alla
quale passare un array bidimensionale con i valori della tabella e
magari altri argomenti per la sua formattazione.


 
*Occhio ai backup
Occhio anche ai refusi :)
-- 
I fatti mi cosano


 
Mi guarderò tutti i riferimenti che mi hai dato.  Grazie.
 
 
John.

 magari altri argomenti per la sua formattazione.
 
calma calma...io vengo dai linguaggi tradizionali (FORTRAN, C, C++, C#, 
Visual Basic) e queste diavolerie come funzioni, subroutines so farle in 
quei linguaggi.
In PHP sono un total beginner. Ho appena finito di combattere col 
concetto di 'session' per trasmettere dati tra una pagina e 
l'altra....se no li perdi.
Tutti concetti nuovi per un vegliardo come me che era abituato a mettere 
un call Init all'inizio e poi stai tranquillo che i dati restano in 
memoria fino alla fine....
 
Qui si deve ragionare sempre in multitasking/multiuser, visto che 
milioni di persone posso 'girare il programma' contemporaneamente...
 


 
Una curiosità, se non puoi avere accesso al db (magari per motivi di 
sicurezza) perchè non chiedi una copia, del resto se hai accesso ai dati, 
significa che questi non sono riservati e quindi una eventuale opposizione 
alla copia magari non di tutto ma della parte che ti interessa non ha alcun 
senso.
Ciò premesso, perchè non valuti l'ipotesi di formattare tali dati tramite 
excel e poi salvare tutto come un file di testo formattato con eventuali 
tabulazioni?
Nel momento in cui hai questo file di testo formattato, non ci vuole 
assolutamente nulla a creare un piccolo script in php dove ti crei la 
tabella (vedi esempio di altro post) mediante un doppio ciclo, uno per 
leggere le righe e uno per leggere le colonne di questo file di testo 
formattato e cosi almeno ti stampi quello che ti serve, a prescindere dalla 
quantità di righe/colonne che possiede tale file.
Ma puoi anche fare delle query mediante le istruzioni condizionali per 
selezionare non tutti ma solo una parte di dati che ti servono e stamparli e 
cosi via.
In altre parole, quello che ti sto suggerendo è di riprodurre il db su un 
file di testo e attraverso il php trattare questo file di testo per estrarre 
le informazioni che ti interessano :)
Fai sapere. 
 


 
ma poi nella routinetta devi mischiare il php e jtml lo stesso, no ?
tuttavia ammetto che se uno lo fa come nel tuo esempio dovrebbe essere 
'indolore' (dal punto di vista del parser php) e ricevere meno messaggi 
di errore.
 
Quando mi sarò 'fatto le ossa' mi farò una classe in php che fa 
questo... :-))
 

 Fai sapere.
 
E' proprio quello che sto facendo. Esattamento ciò. E sono arrivato a 
buon punto.
Ora mi tocca solo mettere in pratica quello cheho imparato negli ultimi 
giorni.
 
Grazie a tutti voi dei feedback !
 

 scoperto che non esistono dati globali in PHP)
 
Non e` vero.
 
Non esistono variabili "di applicazione" perche` non hai un application 
server, ma le global esistono (c'e` anche una reserved keyword 
"global" :P). E non vanno usate.
 
Nel 99.99999% dei casi a te non serve una variabile di applicazione, ma 
un valore in sessione, e anche quelle ci sono.
 
Per tutto il resto, e` il funzionamento del web: ogni richiesta e` un 
mondo a se`. Alla fine dello script perdi tutto quello che non hai 
salvato da qualche parte (db, file, sessione, memcache, ecc.)
 
Bye.
 


 
eh già... croci e delizie del web...  :-))
 
 
 > bye.
 
Ciao.
 
John

 server
 
Che da quello che ha spiegato gli andrebbe pure bene, un server 
specifico a queste benedette 43 tabelle che sono in sola lettura. Ma non 
in PHP…

 oggi, uno si va a rompere le corna...mahh... :-))
 
mah...
 
è come dire: io non studio l'inglese ma il dialetto stretto della 
florida del nord.
 
 
Esiste un linguaggio ben supportato, ben documentato. perchè appoggiarsi 
a framework di terzi ?
mai capito


uno normalmente si rivolge a dei framework o templates per avere dei 
vantaggi.
Per quel poco che ho letto, fare una certa cosa in twig o smarty, prende 
meno codice (quindi meno tempo e meno costo) del php nudo e crudo. Lo 
stesso dicasi per django rispetto a python.
 
Altrimenti, se non ci sarebbero dei vantaggi, non venderebbero, o sbaglio ?
 
 
 
 

 in PHP…
 
scusa ma non capisco : perchè non in PHP ??

 scusa ma non capisco : perchè non in PHP ??
 
Intendo che non lo suggerirei, si può senz'altro fare anche in PHP ma 
non credo di averne mai visti.
Se dovessi consigliare un linguaggio direi python o ruby con un 
framework web.


ci avevo pensato ma in python sono ancor più 'beginner' che su PHP.
E Ruby l'ho solo sentito nominare.
 
E poi se menzioni python su framework web, penso intendi django. Il 
quale a suo tempo mi aveva dato problemi subito all'installazione e ho 
lasciato perdere.
 
Devo ammettere che entrambi python e ruby sembrano ottimi linguaggi che 
si imparano presto.
Poi però scopri che se vuoi fare qualcosa di serio, devi sempre 
scaricarti una qualche libreria, e installarla, e quello già è fonte di 
problemi.
 
Ad esempio, per il primo tentativo per queste tabelle ho dovuto 
scaricare il MySQLdb di python. Che ovviamente, una volta installato, 
non ha funzionato alla prima. E io di perdere tempo già dall'inizio per 
andare a cercare dove sta l'inghippo non ne avevo voglia.
 
Allora sono rimasto col mio XAMPP e PHP+MySQL.


 
per dirla in pochi caratteri io la penso così
 
un framework "forse" può ottimizzarti il lavoro quando la complessità ( 
in una scala fino a 10 ) va da a 0 a 2.
 
Quando poi devi arrivare a complessità superiori usare un framework 
equivale a spararsi nei piedi.
 
Per non parlare delle prestazioni. Nei framework si usano decine di file 
per fare cose che con php si fanno in poche righe di codice.
 
Questo è quanto mi è capitato di vedere nei progetti fatti con framework.
 

 Allora sono rimasto col mio XAMPP e PHP+MySQL.
 
Dove poi hai avuto problemi con mysql e hai deciso di tagliarlo via 
usando file di testo.
 
Il problema è che a furia di scartare quello che non funziona tieni in 
piedi un baraccone come XAMPP per usare una parte minima delle sue 
funzioni. A questo punto usi web.py che è minimale ed intanto hai 
sott'occhio e capisci il funzionamento di tutta l'applicazione.

 sott'occhio e capisci il funzionamento di tutta l'applicazione.
 
vabbè, XAMPP finora mi ha dato la possibilità di fare proprio TUTTO.
Di XAMPP uso tutte le funzioni :PHP, MySQL, phpmyadmin e ho configurato 
un paio di volte anche apache (httd.conf). Ovviamente interventi 
minimali, perchè normalmente a me va bene così com'è distribuito.
Su XAMPP mi hanno funzionato alla prima : Joomla, Wordpress e quasi 
tutto quello che ho installato. Ho avuto problemi con Drupal e problemi 
tanti, gravi e non risolti con Moodle.
Ecco, l'unico grande 'carrozzone' che non sono mai riuscito a far 
funzionare con XAMPP è stato Moodle.
 
Per il resto lo ritengo una piattaforma ottima per dei 
'webmaster-beginner' come me.
 
Mi hai incuriosito col web.py.  Andrò a vedere com'è.
 
 

 'webmaster-beginner' come me.
 
E` una piattaforma ottima anche per i non beginner, ma Andrea ha un odio 
viscerale per PHP. :D
 
Bye.
 
P.S.: Moodle ha dato problemi anche a me che mastico LAMMPP 9-10 ore al 
giorno.


Premesso che il discorso sui framework è sempre foriero di discussioni 
accese, secondo me hai prorpio capito la cosa al contrario.
È proprio quando la complessità aumenta che l'uso di un framework ha 
senso per vari motivi
1- approcci condivisi fra tutti gli sviluppatori
2- codice più prevedibile, magari contorto, ma sempre simile
3- migliore disaccoppiamento del codice
 
Ovvio che niente di questo viene gratis. Il costo è spesso pagato in 
termini di prestazioni e cmq di difficoltà e tempo di apprendimento, 
però poi si sale sulle spalle dei giganti (o dei diversamente alti se si 
è scelto un framework inadatto)
 
Sul fatto del numero dei file cmq non sarei così sicuro: sto sviluppando 
una cosa piuttosto complessa su Symfony2 e con la cache attivata a me 
pare fulmineo per quello che gli faccio fare (uso apc)



 
Ho notato che sono dello stesso autore. Per cosa č meglio usare Symfony 
e per cosa č meglio Twig ? quali parametri sono decisivi nella scelta ?
 
 

 3- migliore disaccoppiamento del codice
 
quindi tra studiare la lingua inglese o un dialetto di una particolare 
regione preferisci studiare il dialetto.
 
io preferisco studiare e lavorare con gli strumenti di base. Sfido 
inoltre qualsiasi progetto "framework" a fornire un supporto maggiore di 
quello di ZEND.
 
poi le opinioni sono come le palle. Ognuno ha le sue ;-)
 
e dopotutto finchè ci saranno programmatori che faranno le porcherie con 
i framework io verrò chiamato a sistemare le cose e potrò emettere 
fattura ;-)

 giorno.
 
Quello a cui mi riferivo è che finora non ho mai visto la parte server 
realizzata in PHP, ora do un'occhiata a Moodle.


Che un framework offra più garanzie rispetto ad un altro non  è che sia 
un grande argomento pro o contro l'adozione di un framework
Onestamente quello che dici è praticamente speculare alla mia di 
esperienza. io spesso ho sistemato (e fatturato) spaghetti code 
dell'illuminato developer di turno che non volendosi affidare ad un 
framework e non potendo essere disumanamente ordinato è finito a 
mischiare modello, controller e presentazione senza poterne ad un certo 
punto venire più fuori.
 
Per inciso, se uno sviluppatore è così preciso ed ordinato da usare 
sempre gli stessi approcci negli stessi luoghi di fatto si è creato una 
sorta di embrionale framework. L'alternativa è scrivere codice 
procedurale, ma penso che ormai praticamente nessuno di noi che lo fa 
per lavoro adotti quell'approccio.
 
Inoltre il tuo paragone fra una lingua nazionale e un framework è poco 
calzante: in un framework di solito non hai la sovversione delle regole 
di base, né una loro storpiatura. Hai dei punti di ingresso più comodi, 
unificati e comunque sia a più alto livello rispetto al linguaggio 
sottostante che puoi comunque usare se proprio ti serve. Ovvio che 
quanto detto dipende molto anche dal singolo framework, basti pensare 
che pure quell'abominio di drupal viene definito framework.
 
Tanto per chiarire la mia posizione, io considero wordpress una cagata 
in quanto a codice. Poi si salvano con la buona documentazione, ma quel 
misciotto di <div id="wp-id"><?php echo ... ?></div> lo trovo 
orripilante. Buono per i lavori a budget davvero basso, ma altrimenti ne 
rifuggo



Symfony e Twig non fanno le stesse cose.
Symfony è un framework completo, basato fortemente sull'inversione del 
controllo o dependency-injection. A fronte di alcuni mal di pancia ti 
offre uno dei framework più avanzati oggi in circolazione. Io te lo 
sconsiglio se non sei sufficientemente corazzato di tuo in PHP, però è 
sicuramente affascinante.
 
Twig è il sistema di template che viene usato di base in Symfony. È un 
ottimo sistema di template a prescindere anche se forse ha qualche 
operatore di default in meno rispetto a Samrty.
 
Il passo grosso cmq lo fai passando da spaghetti code completo, con html 
e php fusi insieme, a logica separata dai template. Da lì in poi 
cambiare il motore di template è noioso e lungo, ma se proprio  serve si 
può fare
M



Mi sembra di capire dai tuoi post, che in pratica è la stessa differenza 
tra masticare l'assembler ed un linguaggio di più alto livello. 
(riferito all apreistoria del PC).
 
Io conoscevo un mio amico che era un guru dell'assembler. Se tu conosci 
un linguaggio che non ha segreti per te, e sei abituato a manipolarlo 
come manipoli le posate quando mangi, allora NESSUN linguaggio sarà 
meglio di quello PER TE, perchè la tua esperienza sopperisce di gran 
lunga ai tempi dilatati che una attivita fatta con inesperienza comporta.
Se poi il linguaggio che conosci così bene é uno di basso livello, 
allora vai a nozze con tutte le applicazioni che richiedono efficenza a 
runtime.
Era il caso del mio amico che tutto quello che aveva a che fare con 
gestione di stringhe lo faceva in Assembler, con sommo stupore di tutti 
i programmatori 'normali' (parlo già degli anni 90).
 
Tuttavia benvengano i linguaggi di alto livello, perchè la stragrande 
maggioranza dei programmatori 'normali' se dovesse fare tutte le cose in 
Assembler, ci diventerebbe schizofrenica.
 
Ho fatto un esempio degli anni 80-90 per chiarire il concetto.
 
Spero che sia pertinente anche se si parla di PHP e di Framework.
 

 e per cosa è meglio Twig ? quali parametri sono decisivi nella scelta ?
 
twin e` un template engine: ti consente solo di "semplificare" la 
scrittura delle pagine html.
 
symfony e` un framework completo: hai MVC, dependency injection, ORM, e 
una marea di altre classi che astraggono e semplificano praticamente ogni 
parte del codice.
 
Bye.
 


Pertinente solo in parte: Assembler è un linguaggio, C pure, Java anche 
e anche PHP lo è, anche se sono a 4 livelli ben distinti.
I framework invece sono un livello di astrazione rispetto al linguaggio, 
ma sono scritti usando il linguaggio stesso.


 (riferito all apreistoria del PC).
 
No sarebbe come dire che lui preferisce usare la libreria standard C e 
non vuole librerie terze parti perché preferisce costruire da sé quello 
che gli serve. Il che a seconda del contesto ha senso e non lo ha.


una curiosità : voi superguru, come considerate Joomla ??
L'avevo installato e tra Drupal e Wordpress era quello che mi era 
piaciuto di più, anche se enorme e ci si perde facilmente nelle opzioni. 
Oltretutto è usato nel nostro dipartimento (io sono una 'isola' 
essendomi fatto tutto a mano, ma comunque sono accessibile da altri 
Dipartimenti attraverso il sito Joomla generale).
 
Però a me Joomla mi è sembrato come una 'prigione' dalla quale non si 
puo'uscire. OK, hai molte cose facilitte, ma io non ero riuscito a 
costruirmi una 'prima pagina' come volevo io.
 
Forse perchè non lo conosco abbastanza. Ma dicono che esistano centinaia 
di Templates che si possono scegliere. Ma se uno vuol farsi una template 
sua ? E' fattibile ?
 
Vale la pena impararselo bene ? Si accelerano o si riducono i tempi di 
sviluppo? Così a lume di naso a me sembra che si raddoppiano. Ma 
ovviamente perchè io non lo conosco bene.
 
Voi come la pensate ?
 
 


Primo, a me il termine superguru non si attaglia molto :)
Secondo, Joomla, Drupal e Wordpress non sono framework, sono dei CMS
 
A me Joomla non piace per niente, IMHO solo Drupal è peggio.
Joomla va bene se soddisfa le tue esigenze così com'è, altrimenti auguri 
a modificarlo
Wordpress lo  uso per lavoretti piccoli perché lo uso  in progetti dove 
c'è poco da modificare e il committente di solito  ci si trova a proprio 
agio come interfaccia di amministrazione. Se servono profonde 
customizzazioni però non è il prodotto giusto.
 
Se valga la pena dipende molto da te e dagli obiettivi che ti poni
I tempi di sviluppo di un Hello World si moltiplicano per un fattore 
abbastanza alto,  quelli di un blog basilare di solito si accorciano 
almeno di un po' (al netto della fase di apprendimento), quelle delle 
cose complesse dovrebbero accorciarsi molto, ma questo dipende dal tipo 
di framework, dalla tua capacità di usarlo.
Sicuramente se già parti dall'idea che non ti piace Joomla e che vuoi 
ribaltarlo forse ti conviene pensare ad un altro CMS


 ovviamente perchè io non lo conosco bene.
 
Dipende quello che devi fare, l'elemento che fa gola a molti è che 
"esistono i plugin per tutto", cioè se per le tue necessità riesci ad 
assemblare il sito creando un puzzle di pezzi già esistenti.
Se vuoi uscire dal seminato, ad esempio vuoi che il tuo puzzle abbia una 
forma triangolare piuttosto che quadrata, e i pezzi non ci sono ti 
arrangi.
 
Se ti interessa un framework che ti permetta di avere una struttura 
omogenea ai tuoi progetti e che sia sufficientemente piccolo da poter 
essere capito e tenuto d'occhio tutto insieme guarda EuropaPHP oppure 
cerca "minimal php framework".
 
Con questi l'applicazione la devi costruire, cioè non offrono le pagine 
di gestione già presenti in un CMS come Joomla, però capisci come 
funziona il MVC, come il framework sceglie le viste da proporre e così 
via.

 Primo, a me il termine superguru non si attaglia molto :)
 
E a me ancor meno.