Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: Progettazione Sito Web

  1. #1
    Utente di HTML.it L'avatar di winch
    Registrato dal
    Jan 2006
    Messaggi
    16

    Progettazione Sito Web

    Ciao a tutti, da qualche giorno ho iniziato la realizzazione del mio primo sito Web in php. Ben presto mi sono accorto delle limitazioni imposte da una poco accurata progettazione. Vi vorrei chiedere dove posso reperire qualche buon articolo che spiega come intraprendere la progettazione di un sito da zero, magari separando la parte funzionale, db, grafica e funzioni?
    Il sito in questione riguarda un'agenzia immobiliare, e in fin dei conti avevo perfino pensato di utilizzare un cms, ma credo mi sia + utile per imparare fare il tutto "a mano"..che mi consigliate?
    Ciao e grazie

  2. #2
    Dubito trovarai una guida (o una buona guida) che parli di questo.
    La realizzazione di qualcosa (un manufatto o altro) prevede, in genere, una progettazione accurata di varie parti secondo processi di sviluppo (che usano metodi e metodologie) appropriate allo scopo.

    Nel caso della realizzazione di un software (o un sito web) c'è tutta una materia dietro (l'ingegneria del software) che abbraccia altre meterie (ad esempio l'interazione uomo macchina, la progettazione di basi di dati).

    Quindi come puoi vedere scrivere una guida che ti indichi la strada giusta da seguire è un po utopico sia per la vastità dell'argomento sia perchè la strada giusta non è mai una sola.

    Quello che puoi avere invece sono dei consigli; io ti direi di:
    • Scrivi una lista delle funzioni che il sito dovrà offire
    • Isolare gli oggetti che dovranno interagire tra di loro
    • Creare un diagramma ER per la struttura del database
    • Ottimizzare il diagramma ER creato
    • Realizzare concretamente il database
    • Concretizzare gli oggetti individuati al punto 2 in classi PHP
    • Inizia a scrivere un po di codice


    Se non vuoi una programmazione a classi beh salta quel punto e con un po di pazienza inizia a scrivere codice.

    Credo questo sia il minimo indispensabile per realizzare qualcosa di valido e solido. Ovvio che se hai già una serie di script (meglio delle classi) per:
    • Gestione database
    • Gestione utenti
    • Funzioni di contorno


    le cose sono più rapide.
    Administrator of NAMDesign.Net

  3. #3
    mi intrometto pure io nell'argomento..mi sono sempre chiesto se il php sia meglio usarlo come ObjectOriented oppure semplicemente componendo funzioni pronte all'uso da richiamare con le inclusioni.
    Io personalmente per esempio suddivido il codice in varie cartelle separate. Ogni cartella contiene un gruppo di funzionalità che offrirà il sito. Per ogni cartella inserisco un file con le funzioni ricorsive e lo richiamo ogni qual volta sia necessario. Ovviamnete uso un unico file per tutte le cartelle per quanto riguarda le connessioni al db e tutte le funzioni ad essa relative.
    A vostro modo di vedere è un buon modo di procedere o è pessimo?!
    Secondo me il codice così facendo è "sporco" ma non vedo lìutilità di utilizzare una classe x stampare una tabella che contenga dei dati prelevati da un db..mi sembra superfluo.
    Premetto che ho lavorato e lavoro con gli OO in java da tempo quindi conosco le potenzialità.
    Ma non riesco proprio a capire se e come possa tornarmi utile qst funzinalità in PHP..qualcuno sa aiutarmi? Grazie e scusate se m sn dilungato! CIAOO

  4. #4
    Originariamente inviato da jed84
    Secondo me il codice così facendo è "sporco" ma non vedo lìutilità di utilizzare una classe x stampare una tabella che contenga dei dati prelevati da un db..mi sembra superfluo.
    Premetto che ho lavorato e lavoro con gli OO in java da tempo quindi conosco le potenzialità.
    Ma non riesco proprio a capire se e come possa tornarmi utile qst funzinalità in PHP..qualcuno sa aiutarmi? Grazie e scusate se m sn dilungato! CIAOO
    Sicuramente ci sono vari gradi di utilizzo della programmazione ad oggetti, che vanno dal semplice uso di classi senza poi strutturare il programma in maniera consona sino al completo uso delle funzionalità (ereditarietà, polimorfismo, etc..) del paradigma ad oggetti.

    Dubito che uno qualsiasi di questi usi preveda l'utilizzo per stampare una tabella con dei dati.
    Le classi vengono in genere usati per gestire tutte le capacità di un entità (oggetto) della nostra applicazione.
    Puoi avere una classe:
    1) per la gestione degli utenti (gestione della sessione, reperimento informazioni utente, etc..)
    2) per la gestione del database (wrapper delle funzioni principali + altre utili)
    3) per la gestione del template
    4) per funzioni di libreria

    tante cose...avere tante cartelle e tanti file è, a mio parere, inutile...credo inicasini abbastanza il codice ed il suo uso; bisogna strutturare bene i programmi.
    Administrator of NAMDesign.Net

  5. #5
    Originariamente inviato da LeaderGL
    tante cose...avere tante cartelle e tanti file è, a mio parere, inutile...credo inicasini abbastanza il codice ed il suo uso; bisogna strutturare bene i programmi.
    Sono pienamente d'accordo..e di ciò me ne sono reso conto creando questo sito abbastanza grosso sul quale sto lavorando..solo che proprio non riesco a capire come possa essere più efficiente un sito utilizzando l'OO. Cioè mi spiego..fare una ricerca e restituire se l'username dell'utente è giusta o meno con una seplice select messa in una funzione qualsiasi non è più rapido che caricarmi una struttura dati intera con magari tutti gli utenti per riempire il mio oggetto? E poi gli oggetti come li sposto dinamicamente tra pagina e pagina..li devo ricreare no?
    Probabilmente parlo così xkè non ho mai visto un sito creato usando php OO e nessuno mi ha mai spiegato nulla in merito (di qst ringrazio i miei fantastici prof universitari.. ).

  6. #6
    Originariamente inviato da jed84
    Sono pienamente d'accordo..e di ciò me ne sono reso conto creando questo sito abbastanza grosso sul quale sto lavorando..solo che proprio non riesco a capire come possa essere più efficiente un sito utilizzando l'OO. Cioè mi spiego..fare una ricerca e restituire se l'username dell'utente è giusta o meno con una seplice select messa in una funzione qualsiasi non è più rapido che caricarmi una struttura dati intera con magari tutti gli utenti per riempire il mio oggetto? E poi gli oggetti come li sposto dinamicamente tra pagina e pagina..li devo ricreare no?
    Probabilmente parlo così xkè non ho mai visto un sito creato usando php OO e nessuno mi ha mai spiegato nulla in merito (di qst ringrazio i miei fantastici prof universitari.. ).
    Uhm...c'è un po di confusione, tu mica devi caricarti i dati di tutti gli utenti per istanziare il tuo!
    E' vero che sul web quando carichi una nuova pagina devi ricreare i vari oggetti però questo poco importa...

    Forse con un esempio banale si capisce prima!
    Facciamo finta di avere una classe per gestire gli utenti (scrivo del codice così al volo che quindi non sarà un buon esempio di programmazione ed uso delle classi :P ):
    Codice PHP:
    <?PHP
        
    class utente {        
            var 
    $email;
            var 
    $islogged false;
            var 
    $info = array;
            
            function 
    utente() {
                if ( isset(
    $_SESSION['islogged']) && $_SESSION['islogged'] == ) {
                    
    $this->islogged true;
                    
    $this->email $_SESSION['email'];
                    
    $this->info $this->getInfo();
                }
            }
            
            function 
    getInfo() {
                global 
    $db;
                
                
    $query $db->query("SELECT * FROM user WHERE email = '{$this->email}'");
                
    $row $db->fetch_row($query);
                
                
    $info = array();
                
    $info['nome'] = $row['nome'];
                
    $info['cognome'] = $row['cognome'];
                
                return 
    $info;
            }
        }
    ?>
    Ora mettiamo caso che precedentemente abbiamo fatto loggare l'utente, il tutto è andato a buon fine e che quindi ci siamo salvati in due variabili di sessione (islogged e email) le informazioni relative al successo dell'operazione di login e l'indirizzo email dell'utente che si è loggato.

    Andiamo ad aprire una nuova pagina a caso del sito con questo codice:
    Codice PHP:
    <?PHP
        $db 
    = new database;
        
    $user = new user;
        
        echo 
    $user->info['nome'];
    ?>
    in automatico la classe verifica se l'utente si era loggato e nel caso si va a leggere le informazioni di quell'utente in modo da averle sempre disponibili nel resto del codice...

    Ovviamente questo è un esempio un po barbaro però semplicemente istanziare la classe utente ci ha permesso di verificare se quell'utente si era loggato ed alcuni suoi dati.

    Successivamente il risultato di questa operazione può essere utilizzato ad esempio in un forum per vedere se quello specifico utente ha i permessi per scrivere un messaggio, quando si è loggato l'ultima volta...e tante altre cose...tutto quello che si vuole...
    Administrator of NAMDesign.Net

  7. #7
    Utente di HTML.it L'avatar di winch
    Registrato dal
    Jan 2006
    Messaggi
    16
    Grazie mille per i consigli! Ora però non capisco un paio di cose. Una, è come citato prima, se l'utilizzo degli oggetti sia sempre consigliato oppure solo in progetti abbastanza complessi. Ad esempio nel mio caso non ho una gestione utenti ma solo dell'amministratore, che può in qualsiasi momento modificare qualsiasi cosa del database, ovviamente presupponendo che chi amministri il sito non abbia e non debba avere alcuna conoscenza tecnica ne di db ne di programazione.
    In secondo luogo non riesco a capire come implementare ad oggetti la parte visiva. Bisogna ad esempio creare una classe "visualizzatore" o che altro? E se si come gestire la diversa struttura visiva delle varie pagine? Spero di essere stato chiaro,
    Ciao e grazie

  8. #8
    Originariamente inviato da winch
    In secondo luogo non riesco a capire come implementare ad oggetti la parte visiva. Bisogna ad esempio creare una classe "visualizzatore" o che altro? E se si come gestire la diversa struttura visiva delle varie pagine?
    Perfettamente d'accordo col tuo dubbio...illuminaci Leader!

    Altro dubbio..ma quando creo una classe su un file php ke nn è lo stesso in cui la utilizzo non devo comunque includerla?
    Se così fosse l'unica differenza tra la programmazione ke utilizzo io ora e qst più pulita è ke non uso la referenziazione tipica delle classi..ma sostanzialmente il modo di utilizzare le funzioni è lo stesso come se le avessi.

  9. #9
    Originariamente inviato da jed84
    Perfettamente d'accordo col tuo dubbio...illuminaci Leader!
    Beh nel web questo discorso può prendere tante strade:
    1) Codice PHP e HTML insieme
    2) Codice PHP ed HTML divisi
    ognuna delle quali può essere realizzata in vario modo.

    Io personalmente non uso una vera e propria programmazione ad oggetti nel web. Sia xkè PHP 4 è molto limitato sia perchè in alcuni casi mi è più comodo.

    Comunque per le funzioni principali (database, utenti, template) uso delle classi, fatte da me, che mi aiutano ma non uso polimorfismi ed tutte le caratteristiche proprie della programmazione ad oggetti.

    Per la gestione del codice html e di quello di programmazione, come detto, possiamo avere vari gradi di integrazione ad esempio (facendo riferimento al codice che ho scritto prima):

    (1)
    Codice PHP:
    <?PHP
        $db 
    = new database;
        
    $user = new user;
        
        echo 
    "
          <html>
               <body>
                   

    Ciao 
    {$user->info['nome']}, come va?</p>
               </body>
          </html>
        "
    ;
    ?>
    molto brutto da vedere e molto difficile da gestire. Una strada migliore è quella di avere un file php (che sia o meno una classe) che ci fornisca la pagina base comune a tutto il sito:
    Codice PHP:
    <?PHP

    function print_page($body) {
    return <<<EOF

    <html>
       <body>
            <div class="header">...</div>

            
    $body

            </div class="footer">...</div>
       </body>
    </html>

    EOF;
    }
    che possiamo poi includere e richiamare nel codice precedente in questo modo:
    Codice PHP:
    <?PHP
        $db 
    = new database;
        
    $user = new user;

        
    incude 'precedente_codice.php';

        echo 
    print_page($user->info['nome']);    
    ?>
    Che è già più pulito e simpatico.

    Ma la strada migliore è sicuramente quella di sviluppare una classe che ti permetta di gestire dei template in modo da dividere completamente PHP ed HTML in modo che:
    1) Lo script PHP si occupa di reperire tutti i dati che servono
    2) Lo script PHP istanzia la classe template
    3) Lo script PHP dice alla classe template quali file gli servono per l'output completo della pagina
    4) Lo script PHP incarica la classe template di valorizzare i campi speciali che si trovano nei vari template che gli abbiamo fatto caricare
    5) Lo script PHP incarica la classe template di visualizzare l'output

    così avremo una classe per il database che legge i dati dal DB, lo script PHP che usa questi dati per passarli alla classe template che poi provvederà a stampare la pagina.

    Originariamente inviato da jed84
    Altro dubbio..ma quando creo una classe su un file php ke nn è lo stesso in cui la utilizzo non devo comunque includerla?
    Se così fosse l'unica differenza tra la programmazione ke utilizzo io ora e qst più pulita è ke non uso la referenziazione tipica delle classi..ma sostanzialmente il modo di utilizzare le funzioni è lo stesso come se le avessi.
    Si va sempre incluso il file, in questo caso meglio se con require visto che senza il file di quella classe lo script non funzionerebbe a dovere.
    Administrator of NAMDesign.Net

  10. #10
    Utente di HTML.it L'avatar di winch
    Registrato dal
    Jan 2006
    Messaggi
    16
    Grazie mille LeaderGl, al momento ho un po di confusione in testa! Ti spiego...non ho eccessivi problemi a portare avanti progetti semplici in php puro. Ma in questo momento mi preme studiare ed approfondire le mie conoscenze web per sbattermi un bel po ora ma organizzarmi il lavoro per il futuro. Quindi adesso si tratta di assimilare nuove e vecchi concetti nella mia mente, farli convivere e soprattutto far funzionare il tutto insieme. Mi riferisco a:

    1)programmazione OOP in php
    2)Css
    3)Templates e template engine (smarty)
    4)Javascript e Ajax
    5)Framework ajax (dojo e cose simili)
    6)imparare nuovi concetti relativi alla creazione di applicativi web (lasciamolo al futuro!)

    Detta così la cosa fa ridere, (al momento invece piango) per l'imensa mole di lavoro che mi aspetta! Cmq ho ancora diversi dubbi sulla collocazione di questi vari "blocchi" da far comunicare tra loro. Ad esempio il codice javascript o ajax lo devo includere nei template?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.