Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parser szablonów
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

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


Napisałem coś takiego:
  1. <?php
  2. $szablon = file_get_contents("szablon.html");
  3. preg_match("#{newsy}(.*?){/newsy}#si", $szablon, $znalezione);
  4. $tablica[0]["tytul"] = "Pierwszy news";
  5. $tablica[0]["tresc"] = "Treść pierwszego newsa";
  6. $tablica[1]["tytul"] = "Drugi news";
  7. $tablica[1]["tresc"] = "Treść drugiego newsa";
  8. $tablica[2]["tytul"] = "Trzeci news";
  9. $tablica[2]["tresc"] = "Treść trzeciego newsa";
  10. foreach($tablica as $wartosc) {
  11.    $temp = str_replace("{tytul}", $wartosc["tytul"], $znalezione[1]);
  12.    $newsy_array[] = str_replace("{tresc}", $wartosc["tresc"], $temp);
  13. }
  14. $newsy = join("", $newsy_array);
  15. $szablon = preg_replace("#{newsy}(.*?){/newsy}#si", $newsy, $szablon);
  16. echo $szablon;
  17. ?>


Szablon:
  1. <title>Newsy</title>
  2. </head>
  3. {newsy}
  4. <h2>{tytul}</h2>
  5. <p>{tresc}</p>
  6. {/newsy}
  7. </body>
  8. </html>


Wydaje mi się że jest to nieoptymalene, i nieprofesjonalnie napisane. Proszę o jakieś sugestje. Co powinienem w tym zmienić??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?php
  2. }
  3. ?>
Też miałem pisać, żeby takiego czegoś za żadne skarby świata w szablon nie pakować (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <body>
  2.  <?php forach($a as $b): ?>
  3.  <blah blah></blah blah>
  4.  <?php endforeach; ?>
  5. </body>
I analogicznie: for(): endfor, if(): elseif():, else:, endif;, while():, endwhile(), foreach(), endforeach()

@autor:
Naprawdę nie ma sensu bawić się w takie "systemy szablonów". Jest to wyjątkowo niewygodne (każdy będzie się musiał uczyć nowego zestawu znaczników), w Twoim przypadku kompletnie nieelastyczne - nie ma możliwości zrobienia tak prostej rzeczy jak chociażby wyświetlenie tekstu "AbcdEFg" jako "abcdefg" (małymi literami).
Cytat
To dlaczego nikt nie rezygnuje z takiej składni szablonów?
Jak to nikt? Pomijam tutaj fakt, że PHP sam w sobie to jeden wielki system szablonów, ale spójrz na Symfony, ZF i inne FW.
Cytat
IMHO obecność języka skryptowego w szablonach doprowadza do tego że nagle pojawia się w nich jakaś logika, co jest złe.
Bzdura. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jak ktoś nie potrafi korzystać z szablonu (nie ma znaczenia czy to Smarty czy czysty PHP) to i tak doporawdzi do jakiegoś Spaghetti Code
Go to the top of the page
+Quote Post

Posty w temacie
- akurczyk   Parser szablonów   21.12.2008, 18:19:21
- - Riklaunim   Napisz to w Javie to będzie bardzo profesjonalne ...   21.12.2008, 18:41:25
- - l0ud   Istota działania jest zła. Systemy szabl...   21.12.2008, 18:53:39
|- - Riklaunim   Cytat(l0ud @ 21.12.2008, 20:53:39 ) I...   21.12.2008, 19:07:16
- - akurczyk   A co z optymalnością mojego skryptu??   21.12.2008, 19:18:13
- - Riklaunim   Duży ruch ci raczej nie grozi, więc i trudno mówić...   21.12.2008, 19:28:38
- - l0ud   [PHP] pobierz, plaintext <?phpIMHO obecność jęz...   21.12.2008, 19:33:34
- - akurczyk   Jeszcze jedno: Załużmy że w szablonie mam: Kod...   21.12.2008, 19:44:27
|- - Riklaunim   Cytat(l0ud @ 21.12.2008, 21:33:34 ) W...   21.12.2008, 20:11:46
- - Crozin   [PHP] pobierz, plaintext <?php}?>[PHP] ...   21.12.2008, 20:26:17
- - akurczyk   @Crozin: Fajne rozwiązanie, spróbuję. Wrućmy do mo...   21.12.2008, 21:25:38
|- - Riklaunim   Cytat(akurczyk @ 21.12.2008, 23:25:38...   21.12.2008, 22:28:43
- - Mize   Jeślibyś używał czystego PHP w szablonach to byłob...   21.12.2008, 21:37:18
- - Mize   To co wyżej napisałem to był przykład, i chyba nie...   21.12.2008, 22:38:44
- - l0ud   Riklaunim, nikt nie miał na myśli całkowitego unik...   21.12.2008, 22:43:15
- - Riklaunim   CytatOk, piszesz że szablony są kompilowane do czy...   21.12.2008, 23:00:03
- - akurczyk   Zroiłem tak jak mi radziliście. Fajnie t...   21.12.2008, 23:03:59
- - Crozin   CytatBo jak np. pisałem firmowego CRMa to osoba od...   21.12.2008, 23:06:11
|- - Riklaunim   Cytat(Crozin @ 22.12.2008, 01:06:11 )...   21.12.2008, 23:35:38
- - akurczyk   POMOCY!!   21.12.2008, 23:18:29
- - erix   CytatMam problem, więcej w drugim zapytaniu (dzies...   21.12.2008, 23:31:25
- - akurczyk   Niema żadnego błądu, tylko niewiem co napisać zoba...   21.12.2008, 23:59:00
- - Riklaunim   Coś jakby musisz umieścić zapytania o fora z danej...   22.12.2008, 00:17:54
- - akurczyk   http://www.codemaster2222.yoyo.pl/skrypt.php - nie...   22.12.2008, 10:47:23
- - Riklaunim   Pomyśl trochę. Jeżeli pobiera wszystkie fora to zn...   22.12.2008, 12:35:00
- - akurczyk   Jak to ma działeć to ja wie, przecież jak robiłem ...   22.12.2008, 12:52:56
- - Riklaunim   Po wierszu z $zapytanie2 możesz dać $tab...   22.12.2008, 13:52:17


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 07:49