Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Config
aras785
post
Post #1





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

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


Witam. Jak według was powinno pobierać się konfuguracje z plik php? A może lepsze do tego jest file.ini ?

U mnie obecnie wygląda to tak:

  1. <?php
  2. namespace Lib;
  3.  
  4. class Config {
  5. public static $con;
  6. public static function get($var) {
  7. require('Config/config.php');
  8. self::$con = $config[$var];
  9. return(self::$con);
  10.  
  11. }
  12. }


I w pliku php:

  1. $config['mysql'] = array (
  2. 'host'=>'localhost',
  3. [..]
  4. );
  5. [..]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





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

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


Cytat
To że są zależności to raczej normalne i trudno by było zbudować coś większego bez nich.
Zależności są nieuniknione i same w sobie nie są absolutnie niczym złym. Chodzi o to by zależności były luźne, oparte na interfejsach, nie sztywne, pracujące na klasach. Pierwsze podejście ma właściwie same zalety, jest naturalne dla OOP - Google: IoC pros. Drugie powoduje masę problemów. Jedną, jedyną zaletą drugiego rozwiązania jest jego zwięzłość - przy małych czy "śmieciowych" projektach dobra architektura systemu zwyczajnie w świecie nie ma znaczenia.
Cytat
To samo co wyżej. Jak potrzebujesz konfiguracji, trudno aby obiekty były gołe bez możliwości wgrania CFG z zewnątrz.
Nie zrozumiałeś sensu podanego przeze mnie przykładu. Chodzi o problemy z ustawieniem zewnętrznego środowiska (tutaj konfiguracji) w przypadku ścisłych zależności, zresztą chyba wyższość jednego rozwiązania nad drugim jest widoczna przy bezpośrednim zestawieniu:
  1. $config = new Config(...);
  2. $someObject = new MyObject($config);
  3.  
  4. $modifiedConfig = new Config($config);
  5. $modifiedConfig->set('...', '...');
  6. $modifiedConfig->set('...2', '...2');
  7. $anotherObject= new MyObject($modifiedConfig);
  8.  
  9. // powiedzmy, że metoda doSth pobiera coś z conifga, np. $config->get('default_value') gdy nie podamy żadnego argumentu.
  10. $someObject->doSth();
  11. $anotherObject->doSth();
  12.  
  13. // -----
  14.  
  15. $someObject = new MyObject(); // fajniej?
  16. $anotherObject = new MyObject(); // co tutaj? Modifikacja globalnego Config? Jeszcze da się to zrobić (patrz: mój wcześniejszy post)
  17.  
  18. // tutaj jesteśmy już w tzw. ciężkiej dupie ;)
  19. $someObject->doSth();
  20. $anotherObject->doSth();
Cytat
Albo rybki, albo akwarium. Jak piszesz coś co ma być publiczne, to raczej używasz czystego PHP lub jeśli jest dedykowane na jakiś FW to ichniejszych metod.
Jeżeli FW nie jest napisany w taki sposób, jak tutaj się sugeruje, to można mieć i rybki i akwarium niedużym/zerowym nakładem pracy.

Ten post edytował Crozin 26.02.2013, 18:56:50
Go to the top of the page
+Quote Post

Posty w temacie
- aras785   [PHP] Config   25.02.2013, 20:11:20
- - !*!   Przejrzyj CakePHP, mają niezłe rozwiązanie np odcz...   25.02.2013, 20:16:30
- - wujek2009   Wraz z każdym wywołaniem "get' (czyli pob...   25.02.2013, 20:18:51
- - Crozin   1. Nie powinieneś stosować sztywnego odczytu z INI...   25.02.2013, 20:27:32
|- - !*!   Cytat(Crozin @ 25.02.2013, 20:27:32 )...   26.02.2013, 09:15:14
- - Spawnm   Crozin, kolega ma problem z poprawnym napisaniem m...   25.02.2013, 20:56:51
- - CuteOne   !*! przyznał bym ci rację gdybyś zamienił ...   26.02.2013, 10:54:55
- - aras785   Dzięki wszystkim za odpowiedzi. Zamierzam korzysta...   26.02.2013, 11:01:49
- - CuteOne   Np. rejestrując obiekt(y) (google -> registry p...   26.02.2013, 11:10:24
- - pyro   Pewnie chodziło mu o coś w stylu: [PHP] pobierz, ...   26.02.2013, 11:12:06
- - CuteOne   Jasio wchodzi do sklepu aby kupić bułkę(main_confi...   26.02.2013, 11:18:47
|- - pyro   Cytat(CuteOne @ 26.02.2013, 11:18:47 ...   26.02.2013, 11:26:09
- - !*!   Dlatego Config::get() powinien pobierać dane z tab...   26.02.2013, 11:20:56
- - CuteOne   mysql.ini [PHP] pobierz, plaintext resources.db.ho...   26.02.2013, 11:26:39
|- - !*!   Cytat(CuteOne @ 26.02.2013, 11:26:39 ...   26.02.2013, 11:29:12
- - pyro   To mozna zastosować rozwiązanie, ktore podałem pow...   26.02.2013, 11:29:26
- - Crozin   CytatCrozin, kolega ma problem z poprawnym napisan...   26.02.2013, 11:29:53
- - !*!   Eydcja. A jak robisz zamieszanie z plikami to świa...   26.02.2013, 11:31:00
- - CuteOne   Przy rozbudowanej aplikacji takie zamieszanie racz...   26.02.2013, 12:07:03
- - !*!   Cytat1. Poza nielicznymi przypadkami globalny dost...   26.02.2013, 12:30:18
- - Crozin   @!*!: Globalny dostęp/sningleton niesie za...   26.02.2013, 12:58:08
- - !*!   Cytat1. Nasz obiekt, który może nie mieć kompletne...   26.02.2013, 15:33:34
- - aras785   Dzięki. Czyli mam zrobić na zasadzie load, get... ...   26.02.2013, 16:03:27
- - Spawnm   Jeśli już to: self::$configs[$file] = p...   26.02.2013, 16:38:47
- - Crozin   CytatTo że są zależności to raczej normalne i trud...   26.02.2013, 18:55:53
- - sazian   ja bym raczej dał tak [PHP] pobierz, plaintext p...   26.02.2013, 20:24:53
- - !*!   Crozin - przeczytałem, to wczoraj... czytam to dzi...   27.02.2013, 10:12:01
|- - ano   Cytat(!*! @ 27.02.2013, 10:12...   3.03.2013, 10:56:35
- - aras785   Mam sobie tablice w pliku config: [PHP] pobierz,...   28.02.2013, 08:33:34
- - !*!   Kiedyś napisałem coś takiego: [PHP] pobierz, plai...   28.02.2013, 11:03:47
- - sazian   wiem że bardzo "statycznie" ale to tylko...   28.02.2013, 19:49:42
- - !*!   W tym przypadku słowo "standard" to lekk...   3.03.2013, 11:06:31


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: 5.10.2025 - 04:12