![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czy są jakieś zagrożenia lub przeciwskazania związane z przekazywanie obiektów php do szablonów smarty ?
Mamy kod
a później już w szablonie
Ten post edytował zzeus 21.12.2008, 19:24:46 -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%) ![]() ![]() |
z dokumentacji smarty:
Cytat Properties of objects assigned from PHP can be referenced by specifying the property name after the -> symbol. O metodach nic nie ma, raczej przykład który podałeś jest nieprawidłowy. Co do przeciwskazań ... niewiadomo kiedy metoda zostanie wywołana ![]() Ten post edytował pinochet 21.12.2008, 19:38:20 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się że zostanie wywołana podczas renderowania widoku, czyli w chwili wywołania $smarty->display(), które zawsze umieszczam na końcu kodu więc z tym nie powinno być problemu.
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 18 Dołączył: 6.03.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
czy jest jakas konkretna przyczyna dlaczego chcesz tak zrobic w ogole? w szablonach dane powinny byc raczej atomowe (wzglednie tablicowe dla list), wiec w twoim przypadku raczej powinienes to zrobic przez po prostu $smarty->assign('name', $user->getName() ); assign_by_ref() powinienes raczej uzywac, jezeli po prostu chcesz w pozniejszym czasie na zewnatrz zmienic wartosc juz rpzypisanej zmiennej:
-------------------- Wrzasq.pl
Tworzenie stron i aplikacji internetowych. Chillout Development - tworzenie stron i aplikacji internetowych. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
żeby sobie uprościć życie, zamiast przekazywać każdy parametr osobno przekazuje raz obiekt i wewnątrz wywołuje sobie metody
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@pinochet & @wrzasq:
Ale gadacie brednie ![]() @wrzasq: A co jeśli miałbyś do wyświetlenia np. 10 użytkowników? Tak samo będziesz szalał?... @zzeus: Nie masz się czym przejmować, przekazywanie całych obiektów do Smarty nie jest niczym złym. Rób jak robisz i nie słuchaj tych głupot. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie masz się czym przejmować, przekazywanie całych obiektów do Smarty nie jest niczym złym. Ale w tym przypadku kłóci się z ideą oddzielenia szablonów od kodu... Do szablonu powinniśmy podstawić tylko i wyłącznie dane do wyświetlania. Kod Imię użytkownika: {$user->delete(45)}
-------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ale w tym przypadku kłóci się z ideą oddzielenia szablonów od kodu... Do szablonu powinniśmy podstawić tylko i wyłącznie dane do wyświetlania. Kod Imię użytkownika: {$user->delete(45)} Jeżeli nie widzisz różnicy między metodą getName() a delete() no to nie mamy o czym rozmawiać. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 18 Dołączył: 6.03.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Cytat A co jeśli miałbyś do wyświetlenia np. 10 użytkowników? Tak samo będziesz szalał?... a czy to nie jest wspomniana przeze mnie lista? -.-' -------------------- Wrzasq.pl
Tworzenie stron i aplikacji internetowych. Chillout Development - tworzenie stron i aplikacji internetowych. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@wrzasq:
I wtedy $user->getName() będzie ok? |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście że różnicę widzę
![]() ![]() -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%) ![]() ![]() |
@pinochet & @wrzasq: Ale gadacie brednie ![]() Nie ma to jak konstruktyna krytyka :] Cytat(phpion) Nie masz się czym przejmować, przekazywanie całych obiektów do Smarty nie jest niczym złym. Rób jak robisz i nie słuchaj tych głupot. ... Jeżeli nie widzisz różnicy między metodą getName() a delete() no to nie mamy o czym rozmawiać. 1. Nie mówimy że przekazywanie obiektów jest złe tylko wywoływanie metod. 2. Nie widzę róźnicy - to nie jest C# Oczywiście jeżeli sam sobie skrobiesz cos to nie ma znaczenia czy będziesz wywoływał metody w templates i czy wogole zastosujesz templates ale jeśli szablon przygotowuje mi grafik to nie mam czasu na tłumaczenie że "->" robisz jak jest obiekt. Obiekt to np $user ale przy $tytul nie robisz bo to nie jest obiekt .... grafik ma listę 10 - 20 - 50 zmiennych i sie nie zastanawia czy wywołuje metode czy uzywa zmiennej statycznej ... przynajmniej w projektach które tworzę tak to wygląda. Ten post edytował pinochet 23.12.2008, 00:43:26 |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 18 Dołączył: 6.03.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
@phpion: wtedy deleguje pobieranie danych z juzera do jakiegos iteratora i przydzielam iterator jako liste. co prawda ja nie uzywam smarty i nawet go nie lubie, ale taka jest ogolem idea szablonow (jesli sie nie myle ;P). oczywiscie, ze mozna przekazywac obiekty do szablonow, ale ma to sluzyc co najwyzej agregowaniu danych, a nie przenoszeniu ciezaru ich pobierania na szablon.
-------------------- Wrzasq.pl
Tworzenie stron i aplikacji internetowych. Chillout Development - tworzenie stron i aplikacji internetowych. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:46 |