Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Eredità multipla

  1. #1

    Eredità multipla

    Trovo demenziale che PHP supporti l'eredità multipla per le interfacce (che hanno senso soprattutto in progetti con eredità multipla delle classi) ma non nelle classi.
    Ho letto che nella prossima versione ci saranno i Trail, che però non sono una soluzione, o almeno non lo sono in nessuno dei casi in cui io avrei voluto usare l'eredità multipla.
    Supponete di dover usare per forza l'eredità multipla.
    Qualcuno di voi ha trovato un modo per "simularla"? Qualche porcheria che però funziona?
    Questa cosa funziona:
    class mysqlExt extends sqlHelper ...
    class sqlHelper extends errorHandler ...
    class errorHandler extends mysqli ...
    Ma suppongo sprechi memoria e performance, e in più può essere utilizzata in pochi casi: se a questo punto vuoi creare una classe figlia di sqlHelper, sarà figlia anche di errorHandler e mysqli, cosa che probabilmente noi non vogliamo.
    Nessuno ha trovato un qualche hack sporco e odioso che però funziona?
    Non è possibile che se un progetto PHP diventa grande bisogna portarlo in Java, porca miseria!

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Credo di non aver capito fino in fondo cosa intendi; "eredita' multipla" significa poter estendere piu' classi contemporaneamente. Cosa che non esiste in java (a meno che non intendessi i mixin, che pero' non sono, strettamente parlando, delle "eredita' multiple").
    E comunque si, ci sono dei workaround, ma di regola questa esigenza denota qualche problema con l'architettura dell'applicazione.

  3. #3
    php non supporta l'eredità multipla, così come Java e (se non erro) .Net... la domanda è: che devi realizzare? perchè, un Handler di errori che estende Mysqli, mi pare un errore concettuale notevole...poi dall'error handler passi ad un helper???
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Non sono stato chiaro... l'ho definito porcheria proprio perchè è un errore concettuale notevole.

  5. #5
    Originariamente inviato da in the web
    Non sono stato chiaro... l'ho definito porcheria proprio perchè è un errore concettuale notevole.
    nell'esempio che hai postato te è tutto un errore concettuale, non ho capito se è quello che devi realizzare, ovvero mysqlExt che estende erroHandler+mysqli, o hai buttato a casaccio i nomi

    cmq richiedo: come mai sei incappato in una eredità multipla? che devi fare? sicuro che sia la strada giusta? sicuro che non possa usare interfacce? sicuro che non stai sbagliando qualcosa nella progettazione delle classi?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2024 vBulletin Solutions, Inc. All rights reserved.