Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Php5 e classi annidate

  1. #1
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497

    Php5 e classi annidate

    Sto sviluppando una cosuccia e mi servirebbe sapere se e' possibile pare delle classi annidate in php5.

    Ho controllato un po' so google ma ho non trovato un granche', anzi molti thread dicono che non si puo' fare in php5 in quanto hanno rimosso il namespace.

    Volevo sapere se era possibile innestare classi una dentro l'altra senno mettero un bel motodo e tanti cari saluti alla classe innestata. L'oggetto lo creero' a mano nel metodo come stdClass.
    Solo che mi piacerebbe appunto avere la possibilita' di innestare le classi per mascherare alcuni dati e non rendere dispnibile l'utilizzo di tale classe visto che verra' usata solo all'interno di una'altra specifica classe e solo li dentro dovra' essere sccessibile.

    Grazie .

  2. #2
    Non mi pare che sia possibile e non ne vedo neanche l'utilità... neanche concettuale sinceramente... mi spiegheresti cosa stai facendo e perchè pensavi a classi annidate?

    thanks
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh le classi annidate hanno sempre la loro utilita'.

    Tanto che java per esempio le supporta, il c# le supporta etc...

    Le classi annidati fondamentalmente servono a nascondere metodi e oggetti , inoltre (non nel mio caso) vengono usate per i fix quando non si puo' fare altrimenti.
    Esempio : ho fatto una classe che chiama certi metodi da interfaccie.
    Ho fatto un mega errore su dei metodi ma non posso piu' modificare la struttura del codice senno salta per aria tutta l'applicazione (succede spessissimo). Per evitare le chiamate ai metodi errati, buggati o che vanno in eccezzione creo una classe interna alla classe che uso, modifice le chiamate dei metodi e faccio gestire tutto internamente. Risolvo il problema a la mia applicazione potra' funzionare come prima senza dover debuggare ulteriormente.
    QUesto su software di dimensioni ragguardevoli e' una necessita' , purtroppo.

    Nel mio caso devo semplicemente mascherare una classe e non renderla disponibile a nessun altro se non alla classe invocante.

    COme ho detto sopra potrei risolvere il problema creando dinamicamento un oggetto in un metodo e restituirlo come stdClass. Cosi risolvo il prob.

    SOlo che non mi piace molto come soluzione preferivo fare tutto come classe annidata.

    Ma se non e' possibile usero' la sol alternativa.

    Purtroppo nn posso darti altri dettagli riguardo a tali classi.

  4. #4
    non è che non so cosa siano, ma diciamo che sto dalla parte di quelli che pensano non servano a molto... come avrai letto cercando su google, ci sono due scuole di pensiero a riguardo... cmq...

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh alla fine delle scuole di pensiero sinceramente nn e' che mi preoccupo molto, io ho le mie idee sono disposto a metterle in discussione ma non parto mai da una presa di posizione di altra gente.

    Cmq alla fine le inner classes hanno la loro utilita' e spesso e volentieri sono utili a risolvere particolari problemi.

    A me bastava solo sapere se era possibile farlo in php 5.
    Se non si puo' fare mi arrangiero' altrimenti.

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    estendere la classe principale?


    da quello che hai scritto non ho ben capito. ma mi pare di intendere che vuoi utilizzare una classe solo in un'altra classe. definisci quindi protected i metpodi e le proprietà che vuoi protetti
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Vero non ci avevo pensato ....

    pero' a sto punto mi sa che mi conviene creare un metodo specifico che mi restituisce una stdClass di php e finisce li tutto.
    Metto tutto private e il metodo non sara' quindi piu' accessibile all'esterno della classe.

    Cmq il mio dubbio non era risolvere il problema in altro modo, perche' soluzione alternative ci sono, ma bensì se era possibile annidare classi in php e alla fine ho capito che non si puo' fare.

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ma le puoi annidare. ovviamente per annidare intendo utilizzare una classe in un'altra.

    ma a parte che non ha senso resta il problema che se non dichiari metodi e proprietà con protected la classe è sempre accessibile
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.