Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][PHPTAL] Problem z zmiennymi przy ładowaniu plików.
Forum PHP.pl > Forum > Przedszkole
Salve
Witam!

Mam mały problem z systemem PHPTAL. Dla przykładu: Podzieliłem stronę na 3 pliki:

index.php
config.php
test.php

index:
  1. <?php
  2. include_once('config.php');
  3. $template = new    PHPTAL('tpl/index.html');
  4. $template->setPhpCodeDestination('../tpl/');
  5. $template->isError = 0;
  6. include('test.php');
  7. echo $template->execute();
  8. ?>


test.php
  1. <?php
  2. if( /* coś */ )
  3. {        
  4.    /* kawałek kodu */
  5. }
  6. else
  7. {
  8.    $template->error    = 'blabla';
  9.    $template->isError    = 1;
  10. }
  11. ?>


Zmienne podane w test.php nie przechodzą do index.php w efekcie czego szablon ich nie uwzględnia. Co zrobić aby działało to poprawnie?
themask
W pliku test.php zamiast ustawiania zmiennych klasy template zwróć false/true i w pliku index.php ustaw zmienne uwzględniając zwróconą wartość.
Salve
Tworzę wtedy dużo niepotrzebnego kodu. Całość pisana jest u mnie w OOP.
Rozwiązałem już problem wystarczyło dodać w klasie:

  1. <?php
  2. global $template;
  3. ?>
erix
Cytat
Całość pisana jest u mnie w OOP.

  1. <?php
  2. global $template;
  3. ?>

Właśnie widać...

Musisz mieć coś pomieszane w logice, bo global" title="Zobacz w manualu PHP" target="_manual być nie powinno.
Salve
To jest przykładowy kod..
Fifi209
Cytat(Salve @ 20.07.2009, 10:47:35 ) *
Tworzę wtedy dużo niepotrzebnego kodu. Całość pisana jest u mnie w OOP.
Rozwiązałem już problem wystarczyło dodać w klasie:

  1. <?php
  2. global $template;
  3. ?>



Cytat(erix @ 20.07.2009, 11:20:58 ) *
  1. <?php
  2. global $template;
  3. ?>

Właśnie widać...

Musisz mieć coś pomieszane w logice, bo global" title="Zobacz w manualu PHP" target="_manual być nie powinno.



Cytat(Salve @ 20.07.2009, 13:02:48 ) *
To jest przykładowy kod..


To sam się zastanów czy to jest rozwiązanie czy przykładowy kod.
Salve
Wystarczy czytać: "Rozwiązałem już problem wystarczyło dodać w klasie:" Kod jest tym co należy dodać..
erix
Ale nie mamy tego na myśli.

Chodzi nam o to, że obiektowo, to Ty nazwałeś, bo programowanie obiektowe m.in. zakłada rezygnację z global" title="Zobacz w manualu PHP" target="_manual i zastąpienie go innymi sposobami.
Salve
To przepraszam, nie wiedziałem. Dopiero uczę się OOP, jakie może być inne rozwiązanie niż global?
Fifi209
Cytat(Salve @ 20.07.2009, 13:40:58 ) *
To przepraszam, nie wiedziałem. Dopiero uczę się OOP, jakie może być inne rozwiązanie niż global?


Choćby nawet niepolecany singleton, lub odpowiednia klasa.
Ew. Możesz obiekt przekazywać w parametrze funkcji.
erix
Cytat
Choćby nawet niepolecany singleton

Jest już temat o przekazywaniu zmiennych.

Nie róbmy flame'a, bo singleton wcale nie jest taki zły (oczywiście, w odpowiednich przypadkach).
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.