Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klasy i includowanie
Forum PHP.pl > Forum > PHP
depablo
Witam

Przyznam się szczerze, że raczkuję w pisaniu obiektowym i wykorzystywaniu klas.

Chciałbym stworzyć klasę wspomagającą korzystanie ze smartów. To znaczy po wywołaniu klasy za pomocą magicznych metod construct i destruct klasa miałaby zbuforować stronę, a później wyświetlić ją w templacie.

Oto co wymyśliłem:
  1. <?php
  2. class use_smarty{
  3.  
  4.  public function __construct() {
  5.  
  6.  
  7.  }
  8.  
  9.  public function __destruct() {
  10.  
  11. $bodysite = ob_get_contents();
  12.  
  13. $this->show($bodysite);
  14.  
  15.  }
  16.  
  17.  public function show ($bodysite) {
  18. require_once './libs/Smarty.class.php';
  19. $smarty = new Smarty;
  20. $smarty->assign("Right",$bodysite);
  21. $smarty->display('design.tpl');
  22. }
  23.  
  24. }
  25.  
  26. $use_smarty = new use_smarty();
  27. ?>


Problem jest w momencie czytania pliku Smarty, a później pliku design.tpl.

W kursach, które przerabiałem nie znalazłem wzmianki o braku możliwości czytania zewnętrznych plików z wnętrza klasy.

Będę wdzięczny za wszelką pomoc.

Pozdrawiam
thornag
W konstruktorze wywolujesz metode obiektu, tak szczerze mowiac zachowanie kontruktora nie jest dla mnie do konca jasne. Ogolnie wyglada to tak, ze po zakonczeniu skryptu wywolywane sa destruktory, wiec jesli skrypt sie zakonczyl to nie ma co wywolywac, ponadto probujesz wywolac metode obiektu ktory wlasnie sam siebie niszczy smile.gif
depablo
Rzeczywiście. Nie pomyślałem o tym.
Zauważyłem, że przy destruct'ie nawet nic nie można zaincludować. Jedyne co udało mi się zrobić to przekierować na inna stronę.

Może zatem jest jakieś inne rozwiązanie dzięki któremu uzyskam taką funkcjonalność?

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.