Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 44
  1. #1

    Consigli per la gestione degli utenti in OOP

    Salve ragazzi, ho bisogno di un po' di dritte su un argomento che credevo che avrei trovato facilmente in rete, ma invece, a meno che io non abbia perso la facoltà della vista, non è affatto così.

    Sto cercando di fare pratica con la programmazione ad oggetti, i concetti teorici credo di averli acquisiti tutti, ho però problemi che riguardano la progettazione, così volevo fare un piccolo esercizio: la gestione di un utente (registrazione e login) in un generico sito.

    Il fatto è che il problema riuscirei a risolverlo, ma vorrei farlo nel modo migliore, nel modo più orientato ad oggetti, non solo usando classi.

    Per ora la soluzione che mi viene in mente è di fare una classe User che contiene solamente le proprietà ed i metodi get e set; e una classe UserManager che contiene tutte le funzioni (check, register, login, logout).

    Spero di ricevere più consigli possibili, dato che queste informazioni dovrebbero anche servirmi per un colloquio nei prossimi giorni.
    Ringrazio anticipatamente!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Se vuoi affrontare la cosa nel miglior modo possibile, dovresti studiarti UML, lo schema che otterresti alla fine dell'analisi ti direbbe esattamente come organizzare le classi, quali attributi e quali metodi dovrebbero avere.

  3. #3
    Ti ringrazio per la risposta, comunque avevo già in programma di studiare UML, per avere una migliore metodologia di risoluzione. Però nel frattempo volevo qualche dritta per capire come gestire questo problema specifico.

  4. #4

    Re: Consigli per la gestione degli utenti in OOP

    Originariamente inviato da Anth0ny92
    la gestione di un utente (registrazione e login) in un generico sito.
    diamo per scontato che il form di login, la pagina di registrazione, quella di benvenuto e la sezione privata sei in grado di farli...

    descrivi brevemente il processo di login che vuoi realizzare, poi dalla tua descrizione ne ricaviamo le classi e le associazioni, cerca di essere preciso ma non troppo..

    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Grazie mille per l'aiuto Al_katraz984, si comunque tutte le pagine so farle. Allora diciamo che voglio dare la possibilità all'utente di registrarsi, una volta registrato, se eswgue il login può effettuare il download di alcuni file che senza essere loggato vedrebbe ma non potrebbe scaricare; se poi non è un problema ci aggiungerei anche una pagina dove l'utente può visualizzare i propri dati e i download fatti.
    Spero di aver dato una buona descrizione,
    Grazie anticipatamente.

  6. #6
    Originariamente inviato da Anth0ny92
    se poi non è un problema ci aggiungerei anche una pagina dove l'utente può visualizzare i propri dati e i download fatti.
    Spero di aver dato una buona descrizione,
    Grazie anticipatamente.
    per me nn è un problema, puoi mettere quello che vuoi, il lavoro lo devi fare tu, no io...

    devi essere più descrittivo, o lo fai discorsivo o fai una lista di operazioni o entrambi, ad esempio (semplifico):

    utente accede alla pagina di registrazione
    - per accedere alla pagina di registrazione l'utente clicca sul link in home page

    l'utente inserisce i dati di registrazione sul form di registrazione
    - i dati richiesti sono:
    -- ect ect

    l'utente invia i dati al server

    il sistema effettua la validazione dei dati
    - il campo "nome" deve essere ....

    ect ect ect ect ect........


    di solito si parte da una lista di azioni e poi si aggiungono i particolari..
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Ok, scusami avevo inteso male, allora diciamo che tutta questa prima parte come l'hai detta tu va brne:
    Un utente può registrarsi cliccando su un link in home, arriva sulla pagina inserisce i dati (per semplicità assumiamo che siano solo mail r password perchè non ho problemi ad aggiungere ulteriori campi e ulteriori check in seguito) .

    Una volta inviati i dati il server li processa e se validi li inserisce nel database, e si viene reindiizzati alla homr.

    Nrlla home ci sono i campi per il login, quando si effettua il login si resta sulla home con un messaggio di benvenuto.

    Se si è loggati nella home compare un ulteriore link che porta ad una pagina con i propri dati visualizzati e i doenload eseguiti.

    In più sempre sulla home c'è un link che porta ad una pagina dove ci sono dei file da scaricare, se si è loggati il link per il download è visibile, altrimenti no.

    Riguardo il fatto del problema intendevo che non volevo approfittare troppo della tua disponibilità, so che posso fare quello che voglio nel mio progetto.

    Spero che ora vada bene, grazie mille.

  8. #8
    I miei due cents.
    Diciamo che la strutturazione per classi, soprattutto (ma non solo) in Php dipende molto da cosa usi per scrivere il codice. Se scrivi tutto, ma proprio tutto, da zero, dipende dal tuo stile personale. Tecnicamente parlando scrivere una classe che sia fatta da soli metodi get/put (ovvero una classe "stampino") e usare un "gestore" che si occupa dell'interazione con la base dati (e magari una che si occupa della grafica) è corretto, anche se può risultare leggermente limitativo.
    Se invece usi un framework, allora devi adattarti, bene o male, alla sua costruzione e alle sue "scelte" strutturali.

    In linea di principio comunque, per il tuo caso, può valere la pena rimanere inizialmente sul semplice, tipo una classe che descriva l'utente, una che gestisca le interazioni col Db e una che costruisca la grafica, poi pian piano che vai avanti e diventi più pratico e confidente, puoi sbizzarrirti con superClassi, ereditarietà, classi astratte, interfaccie eccetera


  9. #9
    Si, scrivo tutto il codice da zero, proprio perchè voglio capire il ragionamnto di progettazione alla base. Quando ho fatto la classe "stampino" e qurlla per gestire però mi sono ritrovato con la classe chw gestiva che non era nient altro che un'insieme di metodi stitici, come se fosse un semplice insieme di funzioni, quindi poco object oriented. Io invece volevo proprio sapere in maniera un po' più 'complessa' quale sarebbe la best practic, anche implemntando qualche classe astratta e un po' di ereditarietá.

    Poi scusami quando parli di classi che gestiscono la grafica parli di classi che restituiscono l'html da stampare (detto per sommi capi)? Fin ora non ho mai usato classi per gestire la grafica.
    Grazie mille per la pazienza.

  10. #10
    Sì, per sommi capi sì, classi che si occupano solamente di costruire html.

    Anche avere una classe che è solo un insieme di metodi, tutto sommato, non è per nulla sbagliato (anche perchè quello è, una classe, in sostanza: metodi + variabili, ovviamente variabili di classe/istanza). Il "problema" è che per ora, avendo per le mani un esempio relativamente semplice, non ne vedi l'utilità, ma se la pensi sotto un'altra prospettiva forse vedrai la luce

    Immagina che la tua classe accozzaglia-di-metodi anzichè gestire il login sia un....genitore di classi. Immagina cioè una Classe "Veicoli" che contiene solamente una decina di metodi quali "accelera", "decelera", "frena", "accendi le luci" ecc ecc.
    Come puoi facilmente immaginare, questi metodi sono ampliamente sfruttabili da un sacco di veicoli, cioè da un sacco di classi (automobile, aereo, motocilcetta e persino carretto-con-mulo), il che significa che la tua super classe, fatta di soli metodi, serve in realtà a molte altre classi (figlie). Non è poi così inutile, no?

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.