Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> metody magiczne i odczyt z pliku settings.ini
Black-Berry
post
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Skoro po kilku konsultacjach doszedłem do wniosku, że jednak nie warto stosować tablicy $GLOBALS do przechowywania ustawień witryny zaczałem pisać klasę settings (IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif) Wygląda ona mniej więcej tak:

  1. <?php
  2. class settings //ta klasa wchodzi w skłąd klasy głównej jako singleton
  3. {
  4. private static $instance = null;
  5. private $tablica=array( "db_name"=>"test" ); //tablica przechowywująca zmienne 
  6.  
  7. public function get_instance() //funkcja do przekazania instancji - singleton
  8. {
  9. $class = __CLASS__;
  10. return self::$instance == null ? self::$instance = new $class : self::$instance;
  11. }
  12.  
  13. function __get( $name ) //magiczna metoda do pobierania zmiennych
  14. { 
  15. return strtolower( $this->tablica[$name] );
  16. }
  17. }
  18. ?>


Chciałbym teraz wczytać do tablicy '$tablica' zmienne z pliku 'settings.ini' który wyglądał będzie tak:
Kod
db_name = nazwa_bazy
db_host = nazwa_hosta
itd...

Pierwsze pytanie:
-- Czy istnieje jakaś fajna funkcja która wczyta za mnie zmienne z pliku .ini? Może ktoś ma i mógłby mi wkleić? (znalazłem już dlatego pytanie jest nieważne - funkcja $ini = parse_ini_file('file.ini'); )
-- Chciałbym jednak zapytać czy uważacie że to dobry (albo zły) sposób na napisanie takiej klasy. Pytam bo nie chce juz tego poprawiać więcej (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)

Drugie pytanie dotyczy posta którego nie mogę teraz odnaleźć ale pisało w nim, że:
Cytat
(..)metody magiczne zaciemniają kod(..)

-- Czy powinienem unikać metody magicznej? Muszę przyznać, że w tym wypadku znacznie poprawiłaby ona czytelność kodu.

Ten post edytował Black-Berry 20.02.2008, 13:05:21
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:47