Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nauka - własny system szablonów
mgebala8
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.07.2014

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


Korzystając z chwili wolnego czasu robię sobię odwozorwanie różnych funkcjonalności frameworków - obiektowo i w php, np. routing, połączenia bazodanowe singleton vs proxy itp.
Wszystko głównie w celach edukacyjnych ale kto wie może z tego wyjdzie mi kiedyś jakaś namiastka frameworka lub microframework.

Wśród wielu różnych modułów stanąłem jednak przed problemem odwzorowania systemu szablonów i tu pojawia się problem jak coś takiego napisać ? ogólnie wpadłem na pomysł że za pomocą wyrażeń regularnych zamienie sobię kod np.

  1.  
  2. treść strony
  3.  
  4. @include('menu')
  5.  
  6. @for($i=0;$i<10;$i++)
  7. bla bla bla
  8. @endforeach
  9.  
  10. tutaj moja zmienna przekazana do widoku: {$zmienna}
  11.  


domyślnie maszynka ma mi zamienić coś takiego na poniższy ciąg i przypisać to do zmiennej $widok;

  1. <?php include('menu') ?>
  2.  
  3. <?php for($i=0;$i<10;$i++):?>
  4. bla bla bla
  5. <?php endforeach; ?>
  6.  
  7. tutaj moja zmienna przekazana do widoku: <?php echo $zmienna ?>
  8.  


i tu pojawia się mały problem a w zasadzie 2, czy na podobnej zasadzie działają silniki twig czy blade ? oraz jak mogę sparsować i wyświetlić treść strony trzymaną w zmiennej $widok ?

Ten post edytował mgebala8 11.07.2014, 09:13:27
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%)
-----


Cytat
Pamiętam kiedyś prelekcje z php, i tam koleś mówił że programiści php to "złodzieje".
Zapożyczenia z innych języków/platform to bardzo, bardzo dobra rzecz, a nie żadne "złodziejstwo".
Cytat
Tyle że to nie ma sensu, kiedy php jest dobry sam w sobie jako system szablonów out of box.
PHP w porównaniu do takiego chociażby Twiga wypada słabo, chociaż tak... można go używać bezpośrednio.
Cytat
[...] która zupełnie niepotrzebny generuje narzut oraz dodatkową składnie - głównie w imię "nie bądźmy gorsi od innych języków" ..
Nie, szablony w PHP to głównie idea: PHP bezpośrednio w szablonach jest niewygodne i nieefektywe, więc stworzono narzędzie, które rozwiązuje pewne problemy jakie czyste PHP powoduje.

Cytat
@marcus753 - popatrz na klasę którą wkleiłem, jest ona dość prosta (w tym zawiera wrednego evala) i powinna ci co nieco powiedzieć jak mniej więcej powinno to wyglądać (a właściwie nie wyglądać, bo szablony są zbędne).
To co tam zaprezentowałeś faktycznie pokazuje jak tego nie robić - ale nie ze względu na bezsensowność szablonów jako takich tylko prymitywną i pełną ograniczeń realizację.
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Cytat(Crozin @ 11.07.2014, 22:47:26 ) *
Zapożyczenia z innych języków/platform to bardzo, bardzo dobra rzecz, a nie żadne "złodziejstwo".
PHP w porównaniu do takiego chociażby Twiga wypada słabo, chociaż tak... można go używać bezpośrednio.
Nie, szablony w PHP to głównie idea: PHP bezpośrednio w szablonach jest niewygodne i nieefektywe, więc stworzono narzędzie, które rozwiązuje pewne problemy jakie czyste PHP powoduje.

To co tam zaprezentowałeś faktycznie pokazuje jak tego nie robić - ale nie ze względu na bezsensowność szablonów jako takich tylko prymitywną i pełną ograniczeń realizację.


Nie twierdze że zapożyczenia są złe, mi chodziło (i temu gościowi również) o tworzenie odpowiedników czegoś, co się sprawdza w innych językach, a nie koniecznie w php.
A co takiego ma twig, czego nie ma php, albo w php nie można zrobić? Jest to jakiś moduł php? No nie bardzo. Aha, czyli do kilku pomocniczych funkcji dla widoku, dorobimy sobie zupełnie nową składnie - bądźmy innowacyjni.
Niewygodne to mogą być za małe buty. To jest kwestia przyzwyczajenia, tak samo jak się przyzwyczajasz do nowej składni, pierdyliardowej wersji super nowego, ulepszonego systemu szablonów.

Tak, ta realizacja "mojej" wersji szablonów jest prymitywna i ograniczona, bo już na etapie początkowym, zdałem sobie sprawę, że jest to bezsensu. Lepiej napisać jakąś klasę lub funkcję pomocniczą, niż dorabiać do tego nową składnie. No i robiłem to bardziej jak autor tematu - w celach naukowych, tyle że miałem ciut inną wiedzę.
Go to the top of the page
+Quote Post

Posty w temacie
- mgebala8   nauka - własny system szablonów   11.07.2014, 09:12:54
- - Pyton_000   Pseudokod jest zamieniany na zwykły kod php i wyko...   11.07.2014, 09:21:55
- - mgebala8   Pyton_000 dzięki za odpowiedź, wcześniej nie myśla...   11.07.2014, 10:10:26
- - nospor   Wydaje mi się, że bez sensu jest pisać własny syst...   11.07.2014, 10:14:08
- - mgebala8   ^^ nospor, rozumiem Cię ale bardziej mi zależy na ...   11.07.2014, 10:32:53
- - nospor   Po co?   11.07.2014, 10:42:16
|- - mgebala8   Pyton_000 - dzięki za wsparcie, traktuję to jako z...   11.07.2014, 12:53:30
- - Crozin   Pisanie własnych narzędzi "dla nauki" ma...   11.07.2014, 10:51:37
- - mgebala8   Crozin - dzięki za opinie, właśnie dlatego ten tem...   11.07.2014, 10:57:38
- - !*!   @ w kodzie to chybiony pomysł, kojarzą się z czymś...   11.07.2014, 11:00:25
- - mgebala8   po prostu wykorzystałbym funkcje: [PHP] pobierz, ...   11.07.2014, 11:06:06
- - Crozin   @mgebala8: @!*!: @mgebala8: HTML-a nie da ...   11.07.2014, 11:29:52
- - !*!   @Crozin - w systemie szablonów nie chodzi o parsow...   11.07.2014, 11:33:00
- - Crozin   @!*!: Napisałem, że podobnie jak przy prób...   11.07.2014, 11:34:20
|- - !*!   Cytat(Crozin @ 11.07.2014, 12:34:20 )...   11.07.2014, 11:38:12
- - Crozin   Nie, to nie tylko zamiana X -> Y, bo przykładow...   11.07.2014, 11:41:54
- - !*!   Jeśli ktoś czepia się takich "błędów" to...   11.07.2014, 11:47:30
- - mgebala8   Crozin - wybacz ale za bardzo Cię nie rozumiem ? ...   11.07.2014, 11:57:16
- - Pyton_000   Pisz i nie patrz co Oni piszą Celowo chcą Cię zni...   11.07.2014, 12:09:06
- - by_ikar   Moim zdaniem w php nie powinno się używać żadnych ...   11.07.2014, 12:53:11
- - Pyton_000   by_ikar systemy Template powstały po to aby kod sz...   11.07.2014, 12:57:31
|- - by_ikar   Cytat(Pyton_000 @ 11.07.2014, 13:57:3...   11.07.2014, 18:01:24
- - nospor   Pyton do tego naprawde idzie sie przyzwyczaic. Tez...   11.07.2014, 13:08:02
|- - mgebala8   Cytat(nospor @ 11.07.2014, 14:08:02 )...   11.07.2014, 13:16:41
- - nospor   Poraz kolejny raz ci powtarzam: sparsowany kod sza...   11.07.2014, 13:17:54
- - !*!   @nospor - jemu chyba chodzi o tworzenie tych plikó...   11.07.2014, 13:45:46
- - nospor   include:file.htm powinno normalnie includowac plik...   11.07.2014, 14:19:54
|- - !*!   Cytat(nospor @ 11.07.2014, 15:19:54 )...   11.07.2014, 14:37:56
- - nospor   No ale dobrze, parser niech sie odpala teraz dla t...   11.07.2014, 14:40:33
- - Crozin   CytatJeśli ktoś czepia się takich "błędów...   11.07.2014, 16:37:21
|- - !*!   Cytat(Crozin @ 11.07.2014, 17:37:21 )...   11.07.2014, 18:34:12
|- - by_ikar   Cytat(!*! @ 11.07.2014, 19:34...   11.07.2014, 19:08:38
- - Crozin   Hmmm... chociażby po to by dać mi znać w którym pl...   11.07.2014, 19:00:03
- - !*!   Wy to potraficie utrudniać sobie życie... CytatHm...   11.07.2014, 20:09:15
|- - by_ikar   Cytat(!*! @ 11.07.2014, 21:09...   11.07.2014, 21:34:17
- - marcus753   Dzięki panowie ! jeszcze nie zacząłem pisać a...   11.07.2014, 20:35:57
- - Crozin   Nie, nie zawsze linia z szablonu odpowiada linii z...   11.07.2014, 20:42:04
- - Crozin   CytatPamiętam kiedyś prelekcje z php, i tam koleś ...   11.07.2014, 21:47:26
|- - by_ikar   Cytat(Crozin @ 11.07.2014, 22:47:26 )...   11.07.2014, 21:59:10
- - nospor   Cytatnospor zakłada że będę miał plik już przepars...   12.07.2014, 08:54:20
- - Crozin   CytatA co takiego ma twig, czego nie ma php, albo ...   12.07.2014, 09:10:13
- - !*!   @Crozin - obaj mamy inne podejście do szablonów, d...   12.07.2014, 10:30:28
- - by_ikar   Cytat(!*! @ 12.07.2014, 11:30...   12.07.2014, 12:37:26


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: 10.10.2025 - 12:56