![]() |
![]() ![]() |
![]() |
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) 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:
|
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) @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)}
|
|
|
![]()
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? -.-' |
|
|
![]()
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ę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chodzi mi o ideę oddzielenia części szablonów od rzeczy w nich niepotrzebnych (jak na przykładzie wyżej). Ja tam wolę ręcznie przekazywać i obsadzać dane w szablonie - wtedy wyraźnie widzę z jakich zmiennych korzysta szablon i jak je przekazuję. Nie widzę problemu, z dopisaniem gdzieniegdzie kilku linii kodu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wyjątek stanowią u mnie zmienne językowe i konfiguracyjne, które są w szablonie zawsze.
|
|
|
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) 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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 02:14 |