Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    sistema estendibile evitando ancoraggi (hooks)

    Ciao,
    abbiamo una classe e un'altra classe che estende questa. Vorrei fare un ovverriding mantenendo però le informazioni del metodo sovrascritto nel nuovo metodo che sovrascrive.

    Esempio:

    Codice PHP:
    class 
    {
       public function 
    metodo1()
       {
           
    $v 1;
           
    $c = array();
           
    $f = new  AltraClasse();
           ...
       }

    }

    class 
    B extend A 
    {
       public function 
    metodo1()
       {
           
    // qui ho bisogno di $v e una serie di oggetti, parametri ecc. specificati in metodo1()
       
    }

    Noi non vogliamo fare l'overriding perchè così facendo perderemmo tutte le funzionalità del metodo padre.
    Utilizzando "parent::metodo1()" dovremmo cmq fare un return di tutti i valori (in un array) per poi utilizzarli nel metodo1 della classe B ma così non possiamo farlo perchè può succedere che la classe A debba esistere da sola.

    In poche parole sto cercando un metodo che mantenendo sempre fisso una parte di codice che io chiamo "core" posso grazie ad una estensione poter cambiarne il risultato finale. Questo quindi mi porterebbe ad avere un sistema in cui posso togliere e aggiungerci delle nuove cose senza però modificare il mio "core" (tenendolo così un file pulito senza errori con la possibilità di aggiornarlo senza creare danni all'intero sistema)

  2. #2

    Re: sistema estendibile evitando ancoraggi (hooks)

    Originariamente inviato da Onizuka88
    sto cercando un metodo che mantenendo sempre fisso una parte di codice che io chiamo "core" posso grazie ad una estensione poter cambiarne il risultato finale.
    Crea un metodo privato o protetto a se stante che esegue i comportamenti comuni e restituisce i valori che ti servono.

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.