Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Warunki i pętle w prostym systemie szablonów, Jak je wykonać?
Verxen
post 26.05.2011, 14:00:19
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.05.2011

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


Witam!
Ostatnio kodzę sobie grę przeglądarkową, i korzystam z prostego systemu szablonów znalezionego w internecie, który składa się z jednej klasy:
  1. <?php
  2. class Template {
  3. var $tmpl;
  4. var $data;
  5. function Template ($name)
  6. {
  7. $this->tmpl = file_get_contents($name);
  8. $this->data = Array();
  9. }
  10. function Add($name, $value = '')
  11. {
  12. if (is_array($name)) {
  13. $this->data = array_merge($this->data, $name);
  14. } else if (!empty($value)) {
  15. $this->data[$name] = $value;
  16. }
  17. }
  18. function Display() {
  19. return preg_replace('/{([^}]+)}/e', '$this->data["\\1"]',
  20. $this->tmpl);
  21. }
  22. }
  23. ?>

Chciałbym do tego dodać system warunków i pętli, jednakże nie wiem, w jaki sposób się do tego zabrać ;/ Mógłby ktoś pomóc?
Za wszelkie odpowiedzi z góry dziękuję. Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Zyx
post 26.05.2011, 14:35:00
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Do takiego kodu nie dodasz. Bardziej zaawansowane systemy szablonów kompilują szablony do kodu PHP, a następnie tenże kod wykonują. Wg mnie nie ma co wymyślać koła od zera, jeśli nie chcesz się poświęcić tylko temu zajęciu. Stworzenie przyzwoitego systemu szablonów, który nie ogranicza użytkownika to zadanie na kilka miesięcy pracy, które dodatkowo wymaga pewnego doświadczenia.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Verxen
post 26.05.2011, 14:36:22
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.05.2011

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


No ale mi nie potrzeba super rozbudowanego systemu szablonów, tylko czegoś prostego, dzięki czemu można osadzać zmienne i byłyby warunki, oraz pętle.
Go to the top of the page
+Quote Post
Zyx
post 26.05.2011, 14:47:51
Post #4





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


"Rozbudowane" systemy szablonów dlatego są takie rozbudowane, żebyś właśnie miał pętle i warunki. Napisałem Ci przecież jasno, że dodanie "prostych" pętli i warunków podnosi poziom komplikacji projektu o kilka rzędów wielkości, więc sorry. Jakby to było takie proste, to kod źródłowy PHP miałby ze 100 KB wielkości, a nie 20 MB.

Ponadto napisanie takiego tekstu świadczy, że Twoje doświadczenie w korzystaniu z systemów szablonów oscyluje w okolicach zera i na dodatek nie uczysz się na własnych błędach. Wziąłeś już raz prymitywne cóś, co udaje system szablonów, przejechałeś się, a dalej piszesz: "nie, ja potrzebuję czegoś prostego" tylko po to, by za 2 miesiące znów tu wrócić, bo znowu Ci czegoś zabraknie. A za dwa lata dołączysz do grona frustratów, którzy stwierdzą, że wszystkie języki szablonów są do @$#@#$, bo mają mnóstwo ograniczeń i najlepiej pisać wszystko w czystym PHP. Kto Ci każe wykorzystywać całą funkcjonalność? Niewykorzystanie połowy nic Cię nie kosztuje, za to stopniowo będziesz mógł pogłębiać swoją znajomość, co moim zdaniem jest dużo lepsze od skakania z kwiatka na kwiatek. Pomijam już fakt, że te "przeładowane systemy szablonów" dziwnym trafem są szybsze od tych "lekkich, zwiewnych i prostych".


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Verxen
post 26.05.2011, 14:56:10
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 26.05.2011

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


Tak, tylko że pisaniem na temat używania gotowych rozwiązań wcale mi nie pomagasz. Niepotrzebny mi kombajn do koszenia trawy.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:52