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

    PHP: Istanza di una Classe usando metodi una Classe Secondaria

    Salve,
    mi sto impazzendo!
    Sto utilizzando CodeIgniter come Framework.
    Ho necessità di utilizzare una mia Libreria per esternalizzare tutta la parte di rendering delle pagine. Utilizzo il pattern MVC di CodeIgniter, ma voglio che le View siano solo una preparazione dei dati che andranno poi alla libreria Template (che sto creando) per il rendering delle pagine.


    In altre parole:
    Ho una classe che chiameremo Template. Poi ho una Classe che chiameremo "Fabulosus" (un Template HTML trasformato in Classe). Ora questa classe estende la Classe Template, ovvero ne acquisisce i metodi ed i parametri.

    Fin qui tutto ok!
    Il mio problema è il seguente:

    codice:
    Class Template
    {
        public function foo() {}
    }
    
    Class Fabulosus extends Template
    {
        public function bar() {}
    }
    Ora io ho necessità di fare questo:

    codice:
    $a = new Template();
    $a->bar();
    Come posso fare? Vi spiego perchè: io devo NECESSARIAMENTE istanziare Template, ma non so se dovrò poi utilizzare la Classe "Fabulosus" o "Ingenious" o "DarkBelt", o qualsiasi altro template HTML... Da Template, dovrò settare un template, e in base a ciò che chiamo dovrò integrare in Template i metodi ed i parametri di queste classi.

    In altre parole, dovrei modellare dinamicamente la classe Template.

    Che soluzione proponete??? C'è qualcosa che non so???
    the Key of Lost Deep E-Dreams
    L'incomprensibile mondo nascosto.
    La Sottile linea tra Immaginazione e Realtà

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    1 php non e' java
    2 OOP va studiata bena prima di scrivere classi.

    Detto cio tu stai creando delle classi che estendono altre classi senza avere idea di cosa ti serva.
    ! templates => pattern decorator !!
    Poiche' tui vuoi gestire una classe template e qualcosa che la estenda.... allora dai 1 occhio al pattern decorator che ti aiuta...

    puoi partire da qui : http://en.wikipedia.org/wiki/Decorator_pattern

  3. #3
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858

    Re: PHP: Istanza di una Classe usando metodi una Classe Secondaria

    [QUOTE]Originariamente inviato da klode
    Salve,
    mi sto impazzendo!
    Sto utilizzando CodeIgniter come Framework.
    Ho necessità di utilizzare una mia Libreria per esternalizzare tutta la parte di rendering delle pagine. Utilizzo il pattern MVC di CodeIgniter, ma voglio che le View siano solo una preparazione dei dati che andranno poi alla libreria Template (che sto creando) per il rendering delle pagine.
    [quote]
    E già qui mi chiedo, 1. perché code igniter, 1. perché vuoi riscriverne il template engine.
    Ma a monte la cattiveria procediamo per gradi.

    Ho una classe che chiameremo Template. Poi ho una Classe che chiameremo "Fabulosus" (un Template HTML trasformato in Classe). Ora questa classe estende la Classe Template, ovvero ne acquisisce i metodi ed i parametri.

    Fin qui tutto ok!

    Il mio problema è il seguente:
    codice:
    Class Template
    {
        public function foo() {}
    }
    
    Class Fabulosus extends Template
    {
        public function bar() {}
    }
    Ora io ho necessità di fare questo:

    codice:
    $a = new Template();
    $a->bar();








    Come posso fare? Vi spiego perchè: io devo NECESSARIAMENTE istanziare Template, ma non so se dovrò poi utilizzare la Classe "Fabulosus" o "Ingenious" o "DarkBelt", o qualsiasi altro template HTML... Da Template, dovrò settare un template, e in base a ciò che chiamo dovrò integrare in Template i metodi ed i parametri di queste classi.

    In altre parole, dovrei modellare dinamicamente la classe Template.

    Che soluzione proponete??? C'è qualcosa che non so???
    Si, ci sono molte cose che non sai, in primis come funziona l'ereditarietà. Come suggerisce virus hai diversi metodi tutti riassumibili nei seguenti pattern: decorator, factory, builder.

    Studiali e decidi quale fa al caso tuo.

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

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.