Autor Zpráva
jansfabik
Profil
zdravím,
potřeboval bych poradit s tímto:

class Config
{
    public static $db_host;
    public static $db_user;
    public static $db_password;
    public static $db_database;

    public static lock () {
        /* toto potřebuji - musí to změnit viditelnost proměných na private */
    }

    public static setConfig () {
        /* toto předá všechny nastavené hodnoty obslužným skriptům pro databázi */
    }
}

Config::$db_host = 'localhost';
Config::$db_user = 'uzivatel';
Config::$db_password = 'heslo';
Config::$db_database = 'test';

Config::lock();


potřebuji, aby se po zapsání všech hodnot změnila viditelnost $db_host, $db_user, $db_password a $db_database na private - jde mi o to, aby se nemohly skripty jen tak jednoduše dostat k přístupovým údajům k databázi
BetaCam
Profil
proč je děláš jako public když je chceš hned po nastavené mít jako private. :)
jansfabik
Profil
BetaCam
no protože do nich musím zapsat konfiguraci (aby byly jen 4 řádky v config.php pro přehlednost) před zamčením
BetaCam
Profil
jansfabik

Tak je nastav na private a hodnoty jim nastav až v metodě init() na úrovni třídy config.
jansfabik
Profil
Tak je nastav na private a hodnoty jim nastav až v metodě init() na úrovni třídy config.
no to by vlastně taky šlo

ale víc by se mi líbilo s tím =, protože je to přehlednější a zvládl by config.php editovat snad každý

po chvíli googlování jsem teď našel magickou metodu __set - používá se takhle:
public function __set($varName, $value) {
 /* a tady se jednoduše podívám zda jsem do té proměné něco uložil
     pokud ne tak se to zapíše, pokud ano, tak vyhodí výjimku ;-) */
}


jinak dík za spolupráci
Toto téma je uzamčeno. Odpověď nelze zaslat.

0