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

    PHP ogetto richiamato spesso in altri oggetti

    Salve a tutti, ho un dubbio che ormai mi assilla da tempo, non è un problema di codice ma di logica o buona programmazione.
    Nei miei software vorrei utilizzare oggetti che tra le mille cose comunichino ad esempio con un DB
    Ho unaclasse che mi fa tutto quello che mi serve che di solito instanzio ad inizio pagina.
    Qual'è il modo corretto di usare questo oggetto instanziato negli altri oggetti? devo averlo sempre come parametro da passare al costruttore? o lo inserisco con global? o voi come fate?
    Grazie
    Rino
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  2. #2
    si gestiscono per aggregazione.. il global è brutto come anche il singleton..
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    si gestiscono per aggregazione.. il global è brutto come anche il singleton..
    Qualche info in più? che significa per aggregazione? almeno posso provare a fare una ricerca
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  4. #4
    up
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  5. #5
    giusto per capire se il concetto di aggregazione è questo:

    $_CONN = new class_connessione("localhost","nome_bd","nome_uten te","password");
    $_CONN->apriConnessione();

    $_OBJ = new class_oggetto($_CONN);
    $_OBJ->variabile_che_ho_assegnato_a_CONN->usaConnessione();

    E' questa che viene considerata aggregazione?
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  6. #6
    si..

    Codice PHP:
    class bar {
      public function 
    write$msg ) {
        return 
    '<p>' $msg '</p>';
      }

      public function 
    pray() {
        return 
    'Ave maria';
      }
    }

    class 
    foo {

      private 
    $bar;

      public function 
    __constructbar $bar ) {
        
    $this->bar $bar;
      }

      public function 
    doSomething() {
        
    $msg 'Banane';
        return 
    $this->bar->write$msg );
      }

      public function 
    doOther() {
        return 
    $this->bar->pray();
      }

    ma semplicemente si usa cosi:

    Codice PHP:
    $bar = new bar();
    $foo = new foo$bar );

    echo 
    $foo->doSomething();
    echo 
    $foo->doOther(); 
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Ok penso di aver capito... ma vediamo se il mio problema mentale lo risolviamo. hihih
    Così come hai fatto tu io istanzio l'oggetto $bar e poi in sostanza lo passo come istanza a $foo in modo più elegante, ma simile a quello che avevo fatto io per $_CONN
    La fantasía, abandonada de la razón, produce monstruos imposibles; unida con ella es madre de las artes y origen de las maravillas.
    (Francisco Goya)
    ----------------------------------------
    http://www.mangioebevo.it
    http://www.definitives.org

  8. #8
    si è la stessa cosa, io ti ho esplicato un esempio semplice ma completo..

    è molto importante il type hinting sul costruttore
    Questa volta, più che un voto.. è favoreggiamento.

  9. #9
    esempio un po' più palpabile:

    Codice PHP:
    class userMapper {
      private 
    $table 'users';
      private 
    $pdo;

      public function 
    __constructPDO $pdo ) {
        
    $this->pdo $pdo;
      }

      public 
    funtion fetch$id ) {
        
    $selectQuery "SELECT * FROM $this->table WHERE id = :id";
        
    $stmt $this->pdo->prepare$selectQuery );
        return 
    $stmt->execute( array( ':id'=>$id ) )->fetchPDO::FETCH_OBJ );
      }
    }

    $pdo = new PDO$dati );
    $userMapper = new userMapper$pdo );

    var_dump$userMapper->fetch'1' ) ); 
    Questa volta, più che un voto.. è favoreggiamento.

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.