Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Smarty w klasie?, Proszę o szybką pomoc!
eMartio
post
Post #1





Grupa: Zablokowani
Postów: 46
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (10%)
X----


Czy można w ciele metod klas generować obiekt systemów szablonów Smarty, wyświetlić stronę i zakończyć działanie aplikacji? Czy raczej nie wypada tego typu praktyka wewnątrz klasy i zrobić to w kontrolerze? Jeżeli w kontrolerze to w jaki sposób wybrać właściwy szablon do prezentacji?

Przykładowy kod:

  1. <?php
  2.  
  3. class Klasa {
  4. function metoda() {
  5. $smarty new Smarty();
  6. $smarty->dispal('szablon.tpl');
  7. }
  8. }
  9.  
  10. ?>


  1. <?php
  2.  
  3. $cos = new Klasa();
  4. if (blad == TRUE) { $cos->metoda(); }
  5. {...}
  6. $smarty new Smarty();
  7. $smarty->dispal('inny_szablon.tpl');
  8.  
  9. ?>


Ten post edytował eMartio 12.01.2006, 14:43:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
sf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


nie widze potrzeby robienia exit po wywolaniu display, np. chcialbym po display zapisac czas generowania strony, w Twoim przypadku jest to niemozliwe

a swoja droga, wole dziedziczyc po Smarty np. SmartyResponse extends Smarty winksmiley.jpg


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
bigZbig
post
Post #3





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Mozna w metodzie (po co ten exit?), ale w kontlorerze faktycznie ladniej.

  1. <?php
  2.  
  3. class Klasa {
  4. protect smarty;
  5.  
  6. publi function __construct() {
  7. $this->smarty new Smarty();
  8. }
  9.  
  10. function metoda() {
  11. $this->smarty->dispal('szablon.tpl');
  12. }
  13. }
  14. ?>

Moim skromnym zdniem to jeszcze lepiej bedzie w ogole utworzyc obiekt smarty poza klasa i tylko go do niej przekazac

  1. <?
  2. $smarty = new Smarty();
  3.  
  4. class Klasa {
  5. protect smarty;
  6.  
  7. publi function __construct($smarty) {
  8. $this->smarty = $smarty;
  9. }
  10.  
  11. function metoda() {
  12. $this->smarty->dispal('szablon.tpl');
  13. }
  14. }
  15.  
  16. $klasa = new Klasa($smarty);
  17. $klasa->metoda();
  18. ?>


Ten post edytował bigZbig 12.01.2006, 15:37:41


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


poprawka gdyby ktos niewtajemniczony czytal:
nie
Kod
dispal
tylko
Kod
display
Go to the top of the page
+Quote Post
Martio_L
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.01.2006

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


Cytat(sf @ 2006-01-12 14:26:41)
nie widze potrzeby robienia exit po wywolaniu display, np. chcialbym po display zapisac czas generowania strony, w Twoim przypadku jest to niemozliwe

a swoja droga, wole dziedziczyc po Smarty np. SmartyResponse extends Smarty winksmiley.jpg

W mojej aplikacji mam własną klasę Smarty, która dziedziczy po klasie Smarty. Z tym "dispal" to przepraszam. Pisałem to na szybkiego.

  1. <?
  2. $smarty = new Smarty();
  3.  
  4. class Klasa {
  5. protect smarty;
  6.  
  7. publi function __construct($smarty) {
  8. $this->smarty = $smarty;
  9. }
  10.  
  11. function metoda() {
  12. $this->smarty->dispal('szablon.tpl');
  13. }
  14. }
  15.  
  16. $klasa = new Klasa($smarty);
  17. $klasa->metoda();
  18. ?>


Podoba mi się ten zapis. Dziękuję za pomoc.
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: 19.08.2025 - 22:35