Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OOP]Ladowanie config, Ladowanie konfiguracji nie dziala
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


WItam pisze sobie mala aplikacje za pomoca MVC i powiedzmy ze chce zrobic kilka klas i udogodnien + architekture katalogow ktora juz mam co mi sie przyda do nastepnych "projektow".

Mam taka strukture katalogow:

Kod
Folders:

|www|
  |frontcontroller|
  |components|
      |controllers|
      |views|
      |models|
  |plugins| 
      |controllers|
      |views|
      |models|
  |libraries|
  |controllers|
  |views|
  |models|
  |config|


Mam plik config/config.php:

  1.  
  2. <?php
  3.  
  4. $configs['controller'] = 'Home'; //Default controller
  5.  
  6. $configs['action'] = 'Index'; //Defualt action
  7.  
  8. $configs['render'] = True; //Render = true bez echo
  9.  
  10. /*
  11. ********************
  12. |Dane do bazy danych *
  13. ********************
  14. */
  15.  
  16. $configs['host'] = ''; 
  17. $configs['login'] = '';
  18. $configs['pwd'] = '';
  19. $configs['db'] = '';
  20.  
  21. ?>
  22.  
  23.  
  24.  


Do tego klase loader w libraries/Lader.php:

  1.  
  2. <?php
  3.  
  4. class Loader {
  5.  
  6.   private static $libraries = array();
  7.   
  8.   
  9.   public static function load($lib) {
  10.   
  11.   
  12.   $ValidLibs = array(
  13.    
  14.   'Router',
  15.   'View',
  16.   'Cfg',
  17.   'Db'
  18.    
  19.   );
  20.   
  21.   
  22.   if(in_array($lib, $ValidLibs) && file_exists('libraries/'.$lib.'.php')) {
  23.    
  24.   require_once('libraries/'.$lib.'.php');
  25.    
  26.   if(empty(self::$libraries[$lib])) {
  27.  
  28.   self::$libraries[$lib] = new $lib();
  29.  
  30.  }
  31.  
  32.  return self::$libraries[$lib];
  33.    
  34.   }
  35.   
  36.   }  
  37.  
  38. }
  39.  
  40. ?>
  41.  
  42.  
  43.  


I do tego plik ktory powinien wczytywac config libraries/Cfg.php:

  1.  
  2. <?php
  3. require_once('config/config.php');
  4.  
  5. class Cfg {
  6.  
  7.  public $config;
  8.  
  9.  public function __contruct() {
  10.  
  11.  global $configs;
  12.  
  13.  $this -> config = $configs;
  14.  
  15.  }
  16.  
  17.  public function __get($cfg) {
  18.  
  19.   return $this -> config[$cfg];
  20.  
  21.  }
  22.  
  23. }
  24.  
  25. ?>
  26.  
  27.  
  28.  


Sek w tym ze config mi sie nie laduje gdy zrobie np:

  1.  
  2. $cfg = Loader::load('Cfg');
  3.  
  4. $controller = $cfg -> controller;
  5.  


I dam sobie na te zmienne print_r() to owszem obiekt sie tworzy ale nie laduja mi sie zmienne z tablicy $configs z pliku config/config.php.



Problem jest trywialny ale nie wiem czemu tak sie dzieje tongue.gif licze na pomoc.



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
jang
post
Post #2





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


  1. require_once('config/config.php'); <- questionmark.gif?
  2.  
  3. class Cfg {
  4.  
  5. public $config;
  6.  
  7. public function __contruct() {
  8.  
  9. global $configs; <- a ta ohyda :) co tu robi ?
  10.  
  11. require_once('config/config.php');
  12. $this -> config = $configs;
  13.  
  14. }


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
Go to the top of the page
+Quote Post
marcio
post
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1.  
  2. $cfg = Loader::load('Cfg');
  3. print_r($cfg -> config);
  4.  
  5.  
  6.  


Tez zwraca pusty obiekt



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
destroyerr
post
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Nie działa pewnie dlatego, że nie masz konstruktora tongue.gif Drobna literówka.

Jak już tak upiększacie to ja proponuję tak:
  1. <?php
  2. $configs['controller'] = 'Home'; //Default controller
  3.  
  4. $configs['action'] = 'Index'; //Defualt action
  5.  
  6. $configs['render'] = True; //Render = true bez echo
  7.  
  8. /*
  9. ********************
  10. |Dane do bazy danych *
  11. ********************
  12. */
  13.  
  14. $configs['host'] = '';
  15. $configs['login'] = '';
  16. $configs['pwd'] = '';
  17. $configs['db'] = '';
  18.  
  19. return $configs;

  1. <?php
  2. class Cfg
  3. {
  4. public $config;
  5.  
  6. public function __construct()
  7. {
  8. $this -> config = require_once('config/config.php');
  9. }
  10.  
  11. public function __get($cfg)
  12. {
  13. return $this -> config[$cfg];
  14. }
  15. }

Go to the top of the page
+Quote Post
marcio
post
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Haha @destroyerr kocham cie smile.gif faktycznie mialem blad brakowalo s przy nazwe konstruktora sorki ale kod pisalem o 2.00 w nocy wiec zdarza sie a bylem pewny ze blad byl gdzies indziej a php nie zwrocilo zadnego error'u.

I moj i twoj kod dzialaja dzieki ci i sorki za taka glupote tongue.gif



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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: 19.08.2025 - 16:14