Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][OOP] Config "globalnie".
uncuncunc
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 1.04.2012

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


Posiadam klasę która odczytuje pliki konfiguracyjne, jednak jak jej używać "globalnie", tak aby pobrane dane, były dostępne w innych klasach?

  1. class DB // lub jakakolwiek inna klasa
  2. {
  3. public $config;
  4.  
  5. public function __constructor()
  6. {
  7. $this->config = Config::get(); //w każdej klasie, za każdym razem robić coś takiego?
  8. }
  9. }


Tak ma to wyglądać czy są inne sposoby, aby plik konfiguracyjny był widziany "globalnie" dla obojętnie jakiej klasy.

Ten post edytował uncuncunc 20.07.2012, 07:50:50
Go to the top of the page
+Quote Post
piotrex41
post
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


Jeśli masz klasę config, to musisz zrobić sobie pliczek w którym stworzysz instancję tej klasy, np. o nazwie core.php.

Struktura pliku core.php:
1. include lub require -> wczytujesz pliki klas.
2. Tworzysz instancję klasy config:
  1. $_config = new Config();

3. Przekazujesz obiekt klasy config do innej klasy, np. DB:
  1. $_db = new DB($_config);


I teraz w klasie DB w konstruktorze musisz zapisać obiekt do zmiennej klasowej:
  1. <?php
  2.  
  3. class DB
  4. {
  5. protected $_config; //tu będzie obiekt klasy config
  6.  
  7. public function __construct($config)
  8. {
  9. $this->_config = $config;
  10. }
  11.  
  12. // TERAZ JAK UŻYWAĆ?
  13. // Odwołujesz się do metod:
  14. // $this->_config->nazwametody();
  15. // Odwołujesz się do zmiennych:
  16. // $this->_config->zmienna;
  17. }


--------------------
www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion
Go to the top of the page
+Quote Post
czychacz
post
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


sorry, ale nie lepiej zastosować wzorzec singleton, tworząc tylko jedną instancję klasy obsługującej konfigurację, a później w konstruktorach innych klas po prostu odwołując się do tej instancji?
http://pl.wikipedia.org/wiki/Singleton_%28...c_projektowy%29
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Nie, nie lepiej.
Go to the top of the page
+Quote Post
piotrex41
post
Post #5





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


Można ale osobiście uważam, że ten wzorzec jest nie najlepszy. Łamie dwie podstawowe zasady: odpowiedniości i open-close. Poza tym nie wiem czy początkująca osoba sobie z nim poradzi.

Poza tym ja tworzę jedną instancję, i przekazuję tylko w zmiennej obiekt tej klasy do innej klasy. To także ma wady, ale cóż, nic nie jest doskonałe biggrin.gif

Ten post edytował piotrex41 20.07.2012, 08:20:31


--------------------
www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion
Go to the top of the page
+Quote Post
uncuncunc
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 1.04.2012

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


Wzorzec nie poradzi sobie z wieloma plikami. Dzięki za nakierowanie.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 19:39