![]() |
![]() ![]() |
![]() |
-etup- |
![]()
Post
#1
|
Goście ![]() |
Dlaczego ten kod wyświetla taki komunikat:
Cytat Catchable fatal error: Argument 1 passed to Theme::__construct() must be an instance of Config, none given, called in /var/www/index.php on line 8 and defined in /var/www/theme.php on line 7 index.php
theme.php
config.php
Jak to naprawić? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 8 Dołączył: 23.09.2011 Skąd: Stromiec Ostrzeżenie: (0%) ![]() ![]() |
Czy nie chodzi o to, że np. private $db; jest tylko w Theme, a w configu takiej zmiennej nie ma?
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przecież masz wyraźnie napisane: theme należy wywołać z parametrem a ty wywołujesz bez
MA byc: $test = new Theme(TU OBIEKT KLASY Config); -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
-etup- |
![]()
Post
#4
|
Goście ![]() |
Nie rozumiem. Chciałbym aby w klasie theme były dostępne dane Configu, to się chyba centralizacja nazywa... Po co mam wywoływać obiekt klasy config w obiekcie klasy theme? Chciałbym aby przy wywołaniu klasy theme, były już widoczne dane klasy config. Czyli po co jest opcja wywołania klasy w konstruktorze?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
żeby Config był dostępny w Theme musisz go tam przekazać, np. poprzez konstruktor klasy Theme (tak to robisz w tym kodzie), z tym, że, żeby to zadziałało, musisz przekazać obiekt klasy Config przy tworzeniu obiektu klasy Theme czyli zamiast:
zrób
-------------------- pretty as a shit.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
jak masz funkcję typu :
to ją wywołujesz np. tak :
jak wywołasz ją tak :
to będzie błąd. Czy to jest dla Ciebie zrozumiałe ? Jeśli tak, to zauważ, że masz podobną sytuację u siebie ![]() Pozatym (tak już poza tym problemem) wydaje mi się, że warto taki "sterownik bazy" trzymać w singletonie, żeby się nie łączyć kilka razy z bazą i mieć dostęp do bazy w każdym miejscu skryptu. -------------------- :)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Peter... Albo raz utworzyć połączenie i potem obiekt połączenia wstrzykiwać gdzie jest potrzebny.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 11:15 |