Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kozystanie z metot obiektu w innym obiekcie
squid
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


mam sobie klase zalozmy:
  1. <?php
  2.  
  3. class nazwa {
  4. var $templateHandler;
  5. ...
  6. mlist ()
  7. {
  8. ...
  9. $templateHandler->smarty->assign( 'music',  $m);
  10. ...
  11. }
  12. }
  13.  
  14. ?>

wszesniej, w skrypcie wywolujacym, przed stworzeniem obiektu tej klasy robie tak:
  1. <?php
  2.  
  3. $smarty = new Smarty;
  4. $a = new nazwa();
  5. $a->templateHandler = &$smarty;
  6.  
  7. ?>


dostaje pikny komunikat
Cytat
Fatal error: Call to a member function on a non-object in D:\htdocs\...\*.php on line <numer lini>


no i co w takim wypadku moge zrobic kiedy chcialbym wywolac metode obiektu smarty w moim obikcie? kidys probowalem przez argument z referencja podac i dzialalo ale takie rozwiazanie jest dla mnie malo wygodne, macie jakies inne propozycje?

Ten post edytował squid 8.01.2005, 20:18:08


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
bregovic
post
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


A czy nie łatwiej by ci było extend'ować smarty? Co dokładnie chcesz osiągnąć?


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
pafka
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 8.01.2005

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


Chyba masz 2 bledy w tej linii ...
  1. <?php
  2. ...
  3. $templateHandler->smarty->assign( 'music', $m);
  4. ...
  5. ?>


powinienes miec to tak

  1. <?php
  2. ...
  3. $this->templateHandler->assign( 'music', $m);
  4. ...
  5. ?>
Go to the top of the page
+Quote Post
Vengeance
post
Post #4





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


i nazwe metody mlist() poprzedzic trzeba slowkiem 'function'


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





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


Cytat(pafka @ 2005-01-08 21:49:13)
Chyba masz 2 bledy w tej linii ...
  1. <?php
  2. ...
  3. $templateHandler->smarty->assign( 'music',  $m);
  4. ...
  5. ?>


powinienes miec to tak

  1. <?php
  2. ...
  3. $this->templateHandler->assign( 'music',  $m);
  4. ...
  5. ?>

wlasnie, siedzialem dlugo nad kodem i nawet nie zauwazylem takiego bledu winksmiley.jpg czas odpoczac winksmiley.jpg
jest ok, thnx

co do slowka function przed metoda to powinno byc ale to nie jest moj kod tylko przyklad winksmiley.jpg

Czy nie lepiej extend'ować smarty? nie wiem czemu? wole przekazywac wartosci w obiekcie, na zwenatrz tylko wyswietlam, zakladam ze Ty(bregovic) robisz inaczej wiec jak i dlaczego ? winksmiley.jpg

Ten post edytował squid 8.01.2005, 21:19:19


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
Go to the top of the page
+Quote Post
bregovic
post
Post #6





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Ja nie extenduję smarty - bo nie potrzebuję tongue.gif Zapytałem się, bo nie do końca rozumiałem co chciałeś osiągnąć winksmiley.jpg


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
SongoQ
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Wydaje mi się ze warto extendowac smarty bo wtedy rozszerzasz możliwości smarty. Dopasowujesz do własnych potrzeb nadpisując pewne funkcje, dodajesz swoje nowe wymagane do określonego projektu.

Napisze jak ja to robię. W każdym projekcie rozszerzam smarty, wszystkie dotychczasowe metody smarty zostają, ale mam wtedy możliwość dodania własnych nie modyfikując kodu smarty. Wtedy każda aktualizacja smarty nie spowoduje żadnych przeróbek w kodzie, a jeśli jest potrzeba dodania czegoś do funkcjonalności smarty, po prostu dodaje plugin i już.

Chętnie poczytam jak to robią inni.


--------------------
Go to the top of the page
+Quote Post
squid
post
Post #8





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


niestety albo stety jak chca inni php pozwala na jednokrotne dziedziczeni co sprawia ze jezeli moja klasa juz dziedziczy metody po klasie dostepu do bazy to juz smarty nie moge dziedziczyc, moglbym zamienic rolami DBAL ze smarty i abstrakcje bazy realizowac jak teraz smarty tylko po co?Co takiego moze przemawiac za tym zeby rozszerzac smarty


--------------------
Jeśli życie to kara to nieźle nabroiłem ;-)
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 - 16:03