Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzenie obiektu w __construct
lukasz91
post
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Witam, mam fragment pewnej klasy:
  1. class kernel_system{
  2. private $language;
  3. private $ini;
  4. public function __construct() {
  5. require_once 'administration/class.ConfigMagik.php';
  6. $this->ini=new ConfigMagik('administration/config.ini');
  7. }
  8. protected function pathway() {
  9. // bezwgledna sciezka dostepu
  10. return $this->ini->get('path', 'configuration_of_the_site');
  11. }
  12. ...
  13. }

I wywala mi błąd przy tworzeniu obiektu w konstruktorze:
  1. Fatal error: Call to a member function get() on a non-object in /var/www/cms/kernel/class.kernel.php on line 16
(10 linia). Natomiast gdy utworzę obiekt w metodzie pathway wszystko jest ok.

Ten post edytował lukasz91 9.02.2010, 15:54:32
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No a co masz w kernelu w tej linijce?
Go to the top of the page
+Quote Post
lukasz91
post
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Cytat(erix @ 9.02.2010, 16:32:34 ) *
No a co masz w kernelu w tej linijce?

  1. return $this->ini->get('path', 'configuration_of_the_site');
Go to the top of the page
+Quote Post
-=Peter=-
post
Post #4





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


Klasa kernel_system dziedziczy po czymś? Może jest problem z widocznością składowych? Być może jeśli używasz dziedziczenia, to nadpisujesz konstruktor i obiekt konfiguracji się nie tworzy? Podaj bardziej rzeczywisty kod (oczywiście nie całość (IMG:style_emoticons/default/tongue.gif) ), bo ten kod co podałeś wygląda na poprawny.
Go to the top of the page
+Quote Post
lukasz91
post
Post #5





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Cytat(-=Peter=- @ 9.02.2010, 16:40:40 ) *
Klasa kernel_system dziedziczy po czymś? Może jest problem z widocznością składowych? Być może jeśli używasz dziedziczenia, to nadpisujesz konstruktor i obiekt konfiguracji się nie tworzy? Podaj bardziej rzeczywisty kod (oczywiście nie całość (IMG:style_emoticons/default/tongue.gif) ), bo ten kod co podałeś wygląda na poprawny.


Nie dziedziczy, klasa ta jest najwyżej w hierarchii (IMG:style_emoticons/default/smile.gif) . Natomiast klasę tą dziedziczą pozostałe komponenty. np:
  1. <?php
  2. include_once 'class.kernel.php';
  3. include_once 'model/database.php';
  4. class staticSite extends kernel_system{
  5.  
  6. public function show() {
  7. // pokazuje statyczna postrone
  8. $model_menu=new menu_model;
  9. require_once('libs/Smarty.class.php');
  10. $smarty = new Smarty;
  11. $smarty->template_dir = $this->pathway()."templates/";
  12. $smarty->compile_dir =$this->pathway().'smarty/templates_c/';
  13. $smarty->config_dir =$this->pathway().'smarty /configs/';
  14. $smarty->cache_dir =$this->pathway().'smarty /cache/';
  15. require_once $this->pathway().'administration/class.ConfigMagik.php';
  16. $ini = new ConfigMagik($this->pathway().'administration/config.ini');
  17. if ($ini->get('friendly_url', 'configuration_of_the_site')=="yes") {
  18. $this->title=$_GET['title'];
  19. $mysql=$model_menu->getOneByShortLink($this->title);
  20. }
  21. else {
  22. $this->id=(int)$_GET['id'];
  23. $mysql=$model_menu->getOne($this->id);
  24. }
  25. while ($row = mysql_fetch_array($mysql)) {
  26. $dane[] = $row;
  27. }
  28. $smarty->assign('static', $dane);
  29. $smarty->display('static.tpl');
  30. }
  31. }
  32. ?>


Ps. Wiem, że tu jest namieszane trochę, ale właśnie chcę to uporządkować (IMG:style_emoticons/default/tongue.gif)

Ten post edytował lukasz91 9.02.2010, 16:48:05
Go to the top of the page
+Quote Post
darko
post
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


A w klasach wyprowadzonych wywołujesz konstruktor klasy nadrzędnej ?
Go to the top of the page
+Quote Post
lukasz91
post
Post #7





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Cytat(darko @ 9.02.2010, 16:50:02 ) *
A w klasach wyprowadzonych wywołujesz konstruktor klasy nadrzędnej ?

Nie. Wszędzie podobnie jest jak w klasie staticSite
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To dodaj coś takiego i sprawdź co się stanie (IMG:style_emoticons/default/smile.gif)
  1. public function __construct() {
  2. parent::__construct();
  3. }

Go to the top of the page
+Quote Post

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: 16.09.2025 - 20:59