Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienne koniguracyjne
Forum PHP.pl > Forum > PHP
kalu111
Mam pytanie, otoz w jaki sposób przekazujecie zmienne konfiguracyjne umieszczone powiedzmy w klasie Config() (skladajacej sie wylacznie z atrybutow) do innych klas? Jaka polecacie metode?
Denver
Na przykład:
  1. <?php
  2. class InnaKlasa
  3. {
  4.  public function __construct()
  5.  {
  6. $sSomeConfigVar = Config::GetInstance() -> Get ('some_config_var');
  7.  }
  8. }
  9. ?>
ARJ
do tego celu najlepiej użyć wzorca projektowego "rejestr". http://www.patternsforphp.com/wiki/Registry
tam masz wszystko opisane. tylko jak dla mnie metody zapisu i odczytu powinny być statyczne ( przyzwyczajenie z Zend Frameworka).
em1X
.. oraz połączyć to ze wzorcem Singleton i mamy doskonały sposób na zmienne konfiguracyjne dla programu.
kalu111
a gdyby atrybuty ustawic na static i odwolywac sie do nich w innych klasach za pomoca:
  1. <?php
  2. Config::$db_passw
  3. ?>
Cysiaczek
Rejestr wydaje się najlepszym rozwiązaniem. Ja trzymam od niedawna dane konfiguracyjne w stringu XML i parsuję simpleXML'em - mam kilka konfigów i kilka sub-rejestrów. Udostępnia mi je klasa helpera.
Np. Odwołanie do
  1. <?php
  2. $config=$AHelper->getModRegistry(); //rejestr modułu - zawiera konfiguracje
  3. $config->get('klucz');
  4. ?>


Zrób tak, jak jest Ci najwygodniej.

Pozdrawiam.
kalu111
wzorcami sie jeszcze nie zajmowalem, ale jezeli dobrze rozumie Singletona, to gdy ustawimy na pocztku strony polaczanie
  1. <?php
  2. $db=db::getInstance()
  3. ?>
a pozniej w jakiej klasie w konstruktorze wywolamy
  1. <?php
  2. $this->db=db::getInstance()
  3. ?>
to powinno zwrocic tylko referencje do polaczenia??
em1X
...to zwroci referencje do twojej klasy konfiguracyjnej
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.