Visualizzazione dei risultati da 1 a 8 su 8

Discussione: OOP con php...

  1. #1
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63

    OOP con php...

    Ciao, forse mi sfugge qualche cosa... Ma a parte per la logica di riutilizzo del codice, quali sono i vantaggi nell'uso delle classi in php?
    Ho sempre programmato in modo funzionale e non riesco proprio a comprendere l'introduzione delle classi in questo linguaggio.
    In particolar modo, ogni volta che creo una classe ed eseguo le operazioni che mi servono al termine della pagina questa verrà distrutta e all'atto del caricamento successivo della pagina verrà ricreata... Non si corre il rischio di aggiungere un sacco di overhead senza ottenere in realtà vantaggi??? Le classi di solito dovrebbero essere usate quando c'è la possibilità di mantenere uno stato.. In php visto che tutto finisce al termine dell'esecuzione della pagina non è un po un controsenso?
    Forse non conosco qualcosa e c'è la possibilità di mantenere una classe in "vita" anche al termine del caricamento della pagina??

    Grazie a chi mi darà delucidazioni...

    ciao
    Fede

  2. #2
    Appena un progetto inizia ad assumere delle dimensioni consistenti, l'utilizzo delle classi diventa quasi obbligatorio.

    Framework come ZF, CakePHP, Symphony etc. utilizzano le classi per mettere a disposizione dello sviluppatore un ambiente con moltissime funzionalità già pronte (es. autenticazione, ACL, accesso al database, etc.) in modo da potersi dedicare allo sviluppo della logica applicativa.

    Ottenere la stessa flessibilità attravero una programmazione procedurale richiede uno sforzo sicuramente maggiore, senza la garanzia di riuscirci.

  3. #3
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63
    Originariamente inviato da filippo.toso
    Appena un progetto inizia ad assumere delle dimensioni consistenti, l'utilizzo delle classi diventa quasi obbligatorio.

    Framework come ZF, CakePHP, Symphony etc. utilizzano le classi per mettere a disposizione dello sviluppatore un ambiente con moltissime funzionalità già pronte (es. autenticazione, ACL, accesso al database, etc.) in modo da potersi dedicare allo sviluppo della logica applicativa.

    Ottenere la stessa flessibilità attravero una programmazione procedurale richiede uno sforzo sicuramente maggiore, senza la garanzia di riuscirci.
    Ok ma quindi niente soluzioni per poter mantenere instanziate le classi al termine della pagina?

  4. #4
    Ok ma quindi niente soluzioni per poter mantenere instanziate le classi al termine della pagina?
    Serializzarle in sessione?

    Il PHP non è un application server.

  5. #5
    Originariamente inviato da filippo.toso
    Serializzarle in sessione?
    O in database, se vuoi emulare una continuation per ogni utente


    Originariamente inviato da filippo.toso
    Il PHP non è un application server.
    ma puoi crearne? Non ho ben compreso il senso di questa affermazione, puoi spiegarti meglio? Grazie.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Non ho ben compreso il senso di questa affermazione, puoi spiegarti meglio?
    Nel senso che chi solitamente pensa che in una web application gli oggetti dovrebbero persistere tra una chiamata e quella successiva lo fa perchè è orientato a pensare in termini di application server (es. Tomcat).

    Già che ci siamo, potresti dare una occhiata a questa idea di implementazione:

    L'Application() di ASP in PHP

  7. #7
    Utente di HTML.it L'avatar di iko82
    Registrato dal
    Apr 2007
    Messaggi
    63
    Originariamente inviato da filippo.toso
    Nel senso che chi solitamente pensa che in una web application gli oggetti dovrebbero persistere tra una chiamata e quella successiva lo fa perchè è orientato a pensare in termini di application server (es. Tomcat).
    Hai perfettamente ragione...

    Comunque grazie per le risposte, l'unico metodo per fare ciò è appunto serializzare in sessione come supponevo e francamente non mi sembra una buona pratica... Anche per via dello spazio utilizzato :master:

  8. #8
    la continuation, che dovrebbe avvicinarsi anche al concetto di Application Server di Filippo, si basa solitamente su database, quindi non devi usare per forza le sessioni (o usarle tramite database, che e' solitamente un approccio migliore)

    Nel mondo Java, per implementare persistenza di oggetti si usa solitamente Hibernate, mentre nel mondo PHP esiste un progetto analogo chiamato Doctrine (che in questo momento mi fa fare una figuraccia, dato che il sito da un 500 tramite Symfony)

    Una volta implementata persistenza degli oggetti, che non significa solamente avere qualcosa di globale come l'Application example di Filippo (comunque intressante), puoi anche avere in Singleton un'istanza globale condivisa da tutti, oppure avere intere sessioni di lavoro o punti di ripristino tramite l'oggetto User, relazionato all'oggetto System, o System()->Section($nomeSezione);

    P.S. le sessioni non vanno bene comunque, o meglio, possono dare tanti problemi perche' non sono condivise nemmeno con l'agent stesso, ergo in Phico (Comet per PHP), ad esempio, non puoi usare $_SESSION per mantenere uno stato all'utente che ascolta
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.