Newsgroup: it.comp.www.php
Titolo: Progetto: una pagina index.php, tante pagine o ...?

Quando vi cimentate con un progetto, partendo da zero, e potete 
decidere liberamente come operare, che strada seguite?
- create una pagina index.php e fate visualizzare le pagine specifiche 
passandogliele nella querystring (fatti i dovuti controlli) e 
"includendole" nella principale [es. index.php?pagina=prima]?
- create tante pagine con nomi diversi (prima.php, seconda.php, ..., 
milleduecentesima.php)?
- altro? :-)
rob4you

rob4you ha scritto:

la prima che hai detto ;)
-- 
!!! OFFERTA IRRIPETIBILE !!! Muori oggi avrai uno sconto del 50%
[CapoBecchino] - hotmail/msn: capobecchino [@] hotmail [.] com

 la prima che hai detto ;)
Risposta diretta, concisa e chiara! :-) c'è comunque un motivo per cui 
preferisci questo sistema rispetto agli altri?
rob4you

 rob4you
-- 
SEZIONE PICCOLI ACCORGIMENTI: "Chiamami un tassì", mi disse prima di 
morire e sulla sua lapide ho scritto: "Qui riposa in pace Untassì".


rob4you ha scritto:

nei progetti che ho fatto (per lo più CMS) uso alcune pagine esterne.
Ma sicurament il metodo migliore è quello di utilizzare un sistema 
centralizzato (il cosiddetto pattern FAcADE) per gestire le varie 
chiamate. Un pò (ma giusto da lontano) quello che fa STRUTS in J2EE...
Fino ad adesso, tuttavia, la fretta mi ha fatto optare per la prima 
soluzione.. ma nei prossimi porgetti volevo utilizzare la seconda scelta...
Ciao!
Sir

 passandogliele nella querystring (fatti i dovuti controlli) e
Se hai la necessità di creare pagine in maniera dinamica (ad esempio da
CMS) è fortemente consigliato (quando non obbligatorio) usare un
solo punto d'accesso.
D'altronde avere tante pagine .php potrebbe portare il solo vantaggio
di avere dei nomi significativi nelle url, cosa che ottieni senza problemi
ed in modo nettamente migliore usando un motore di url rewriting.
-- 
ff
www.fabiofidanza.com
 

Seguo principalmente due percorsi mentre il terzo lo sto sperimentando.
1) pagine diverse che però seguono lo stesso "pattern" di inclusioni:
- inc_top è inclusa all'inizio, prima del doctype (contiene 
sostanzialmente le librerie e le istruzioni per le pagine protette)
- inc_head è inclusa tra i tag <HEAD> (riferimenti a CSS, librerie 
Javascript etc)
- inc_body appena dopo <body> (elementi HTML comuni, tipo i menu)
- inc_footer appena prima di </body> (elementi HTML comuni in calce, 
elementi HTML dinamici invisibili)
- inc_end alla fine di tutto, dove tipicamente eseguo il log
2) pagina unica con contenuti in DB. L'unico parametro è l'id della 
pagina che viene prelevata da DB. Con un meccanismo di "plugin" richiamo 
componenti esterni a seconda di attributi della pagina specificati nel DB
3) template
Alex.

 Alex.

 esterni a seconda di attributi della pagina specificati nel DB
Cioè hai un campo id della pagina che richiedi, un unico campo (tipo 
varchar o blob) nella tabella in cui memorizzi tutta la pagina per 
intero, piu altri campi per eventualmente richiamare altri componenti?
rob4you

 3) template
...che così è più flessibile.
..nel caso di pagine senza permessi particolari, mi faccio il cache dei 
contenuti senza andare a toccare il db. in questo caso una pagina viene 
prodotta in 0.0000001 sec piuttosto che in 0.01 secondi
poi l'approccio ad esempio di p4a è molto bello ed elegante, ma talvolta 
mal si associa alla necessità di chi paga IMHO.
hth
massimiliano



La pagina unica in genere è la soluzione migliore, magari accompagnata da  
url rewriting (cerca nice urls su google).
Studia un po' qualche framework mvc (codeigniter, cakephp,  
zendframework,...) potresti trovarti bene.
Tac
-- 
Using Opera's revolutionary e-mail client: 
http://www.opera.com/mail/

 mal si associa alla necessità di chi paga IMHO.
P4a è piu' adatto a intranet che a siti di frontend.
Qualche limite sulla flessibilità, daccordo. Ma non è male.



Sì. Classica struttura CMS:
-id
-id_padre (ogni pagina fa parte di un grande albero che parte dalla home)
-body (text con l'HTML dei contenuti della pagina)
-titolo
Poi altri attributi tipo:
-abstract (descrizione breve, per i risultati del motore di ricerca interno)
-keywords (per il motore interno)
-data_inizio e data_fine (pubblicazione limitata nel tempo)
-vari flag per pagine ad accesso frequente, titoli di sezione e altro ancora
Alex.