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
Jeśli ktoś czepia się takich "błędów" to równie dobrze możemy mieć pretensje dlaczego to nie działa w czystym PHP. Strata czasu na taki parser.
Jeżeli błąd składni to "błąd" to co nie jest błędem w Twoim rozumowaniu? Ale masz rację, szkoda czasu na narzędzie, które nawet tak trywialnych błędów nie wyłapie na etapie "kompilacji". Dlatego albo stosuje się czyste PHP, albo stosuje gotowe, solidne rozwiązania, albo jeżeli ma się jakiś powód pisze własne - ale takie, które rozwiązuje jakiekolwiek problemy, a nie tylko stwarza nowe.
Cytat
Crozin - wybacz ale za bardzo Cię nie rozumiem ? Jest gościu który chce się porwać z motyką na słońce i spróbować napisać coś swojego nawet niech będzie to gorsze i okrojone ale przecież nie oto chodzi by tworzyć następcę laravela, po prostu nauczę się czegoś nowego a ty za wszelką cenę chcesz mi uświadomić że nic nie wiem i nie powinienem się za to zabierać ehh już samo przygotowanie do napisania takiego systemu szablonów nauczyło mnie kilku nowych rzeczy a co dopiero pisanie go wink.gif
Masz rację - częściowo próbuję Cię zniechęcić. Masz też rację w tym, że nauczysz się czegoś nowego pisząc takie coś, ale...
1. Nauczysz się zdecydowanie mniej, niż gdybyś czas ten poświęcił na rozwój w innym kierunku, tj. nauczenie się wykorzystywania istniejącego narzędzia, zbadanie i przeanalizowanie jak działa "pod maską", napisanie jakiś rozszerzeń do niego. Co więcej zamiast od razu uczyć się dobrych i przydatnych rzeczy siłą możesz wyrobić sobie wiele złych wawyków.
2. Niemal na pewno nie uda Ci się stworzyć czegoś wartego (dla Ciebie samego) wykorzystania w przyszłości, ponieważ po Twoich pytaniach widać, że brak Ci jeszcze nieco doświadczenia/wiedzy by napisać dosyć mocno rozbudowane narzędzie. Nie wiesz jakich problemów się spodziewać, domyślam się, że zapewne nawet nie wiesz jakich problemów chcesz się pozbyć przy pomocy tego narzędzia.
3. Będziesz miał sporo satysfakcji ze stworzenia czegoś własnego, ale nie będziesz miał znajomości/doświadczenia z wykorzystaniem czegoś faktycznie przydatnego.


Innymi słowy poświęcisz sporo czasu dla nauczenia się kilku rzeczy, zamiast poświęcenia sporej ilości czasu na nauczenie się sporej ilości rzeczy - możesz mi wierzyć, sam przerabiałem dokładnie to samo dobrych kilka lat temu (mam chyba nawet gdzieś zapisany projekt własnego systemu szablonów).


Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(Crozin @ 11.07.2014, 17:37:21 ) *
Jeżeli błąd składni to "błąd" to co nie jest błędem w Twoim rozumowaniu? Ale masz rację, szkoda czasu na narzędzie, które nawet tak trywialnych błędów nie wyłapie na etapie "kompilacji". Dlatego albo stosuje się czyste PHP, albo stosuje gotowe, solidne rozwiązania, albo jeżeli ma się jakiś powód pisze własne - ale takie, które rozwiązuje jakiekolwiek problemy, a nie tylko stwarza nowe.

A jaki jest sens, aby system szablonów robił dodatkowy narzut na sprawdzanie czy składnia się zgadza, to zbędny bajer, ponieważ tym zajmuje się samo PHP. Max czym to się powinno zajmować to zamiana {foo} na <?php echo $foo;?> ... czy inne takie, aby skrócić czas pisania o całe 8 znaków (IMG:style_emoticons/default/wink.gif) Po prostu jeszcze bardziej skrócona, alternatywna składnia jaką samo PHP również posiada.
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: 3.10.2025 - 03:11