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

    Configurazione e metodi globali: approccio OOP

    Sto sempre a rompere su cose di cui so veramente poco ....

    Nel mio CMS voglio avere un modo per
    - dichiarare tutta una serie di configurazioni (in modo semplice e tutto accorpato in un solo file) che siano accessibili ovunque nel portale.
    - dichiarare dei metodi e delle entità che siano accessibili ovunque nel portale

    per esempio
    Codice PHP:
    class Language {
       public 
    $default "IT";
       
       public function 
    getLang($src) {
          
    $lang $src// src può essere un POST o un GET per esempio..
          
    if(count($lang) == && ... altri controlli)
              return 
    $lang;
       }
    }

    class 
    MySQL {
       private 
    $host "localhost";
       private 
    $user "username";
       private 
    $pass "password";
       private 
    $dbname "database";
       private 
    $charset "UTF8";
       
       public static 
    $istanzaMySQL null;
       ...
       ...

       public static function 
    getInstance() {
           
    // codice per il singleton e ottenere sempre la stessa istanza....
       
    }

    Ecco vorrei poter 'raggruppare' (o comunque accedere in modo unico) a tutte le variabili di configurazione.
    Conviene definirle tutte insieme (magari una class 'Configurazione') oppure definirle ognuno nel proprio ambito:
    tipo la classe MySQL avrà le proprie proprietà o i propri metodi per inizializzarle; la classe Language avrà la lingua di default impostata all'interno di sè stessa anzichè fuori (nella classe 'Configurazione' per esempio).

    Ho bisogno di un metodo per rendere una serie di classi o di variabili/costanti di configurazione disponibili ovunque nel portale, e poterle raggruppare al meglio (magari se voglio configurare il portale trovarmi tutto in un unica pagina, anzichè andare a configurare ogni singola classe)


    Mi date un aiuto?

    Dai che a forza di testate questa OOP inizio a usarla (e forse a capirla)

    Grazie

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    io programmo in php oop usando un file per ogni classe quindi, se devo modificare la lingua o altro mi è facile capire dove mettere mani
    cmq se proprio vuoi raggruppare tutto, magari per fare un form backend per la modifica delle var, potresti fare così
    class Config{
    public static $var1 = "a";
    public static $var2 = "b";
    }
    in questo modo, quando vuoi usare una var non hai bisogno di creare alcuna istanza di Config e potrai richiamarle così:
    Config::$var1;
    Config::$var2;

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Giusto, così mi risparmio anche l'istanza!

    Pensavo... conviene utilizzare un array pubblico statico o fare una variabile separata per ogni cosa?

    Codice PHP:
    /* Variabili lingua */
    public static $default_lang "IT";
    public static 
    $default_charset "UTF8";

    /* Variabili database */
    public static $db_user "username";
    public static 
    $db_pass "password";

    etc.. etc... 
    oppure

    Codice PHP:
    public static $conf = array(
       
    /*Variabili lingua*/
       
    "default_lang" "IT",
       
    "default_charset" "UTF8",
       
       
    /*Variabili database*/
       
    "db_user" "username",
       
    "db_pass" "password",
       
       
    etc.... etc ...
    ); 
    ? ?

    Mi rompo a scrivere sempre "public static"!!
    Scherzo... eventuali vantaggi dell'usare un array? O svantaggi? A livello sia di stile che di comodità....

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    credo convenga usare delle variabili per il semplice fatto che in php gli array hanno un accesso più lento (mi pare siano implementati con una ordered map) di quello che si ha accedendo a una variabile...

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Ok allora mi adatto

    Un'altra domanda:

    Codice PHP:
    classe Conf {
      private static 
    $default_val "10";
      
      public static 
    setDefaultVal($val) {
        
    // ... controlli vari su $val .... //
        
    $default_val $val;
      }
      
      public static 
    getDefaultVal() {
        return 
    $default_val;
      }
    }

    Conf::setDefaultVal("15");

    $cnf = new Conf();

    echo 
    $cnf=>getDefaultVal(); 
    Posso aspettarmi che mi venga stampato "15"?

  6. #6
    Ho fatto una domanda stupida?

  7. #7
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    dovrebbe andare, in ogni caso, per riferirsi a variabili statiche dovresti usare return self::$default_val; cmq potevi anche sperimentarlo da te l'esito

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

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.