![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym przedstawić moją najnowszą klasę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Parser szablonów... Przyznaję wzorowałem się głównie na chameleonie(chodzi o składnie), phpbb jest totalnie nieprzyjazny a Smarty totalnie zamotane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Klasa obsługuje instrukcje warunkowe, sekce, funkcje, zmienne tablicowe oraz modyfikatory. Oczywiście sekcje i ify można dowolnie wiele razy zagnieżdżać. Wielowymiarowość tablic również działa... Wszystko działa podobnie jak u Bastiona. Są jednak małe wyjatki, funkcja setvar ma inna skadnie @setvar(nazwa zmiennej, wartosc) Wszelkie zmienne umieszczamy w blokach {zmienna} jednak jeśli mamy doczynienia z funkcjami aby uniknąć zagnieżdżania nawiasów klamrowych należy użyć znaku dolara... Kod Normalnie blok zapiszemy {blok} Ale gdy mamy np. instrukcje warunkową {@if($blok=='costam')} asf ss as {@fi} Dodałem takze kilka ulepszeń... Możemy deklarować zmienne tablicowe. np. Kod {@setvar('tablica',Array('pierwszy','drugi','bla' => 'trzeci'))} Dodałem również modyfikatory do funkcji setvar(i tylko do niej!) tak wiec możemy użyć zapisu Kod {@setvar('owoc','jablko')} {@setvar('owoc_hash',$owoc|md5)} lub po prostu Kod {@setvar('owoc_hash','jablko'|md5)} Umożliwiłem takze wielokrotne modyfikowanie np.. Kod {napis|strtolower|ucfirst|md5} Co spowoduje zamiane liter w zmiennej 'napis' na małe, następnie pierwsza litera zostanie zmieniona na wielką, na końcu całość zostanie zhashowana za pomoca md5 DOWNLOAD (wszystkie wersje zawierają przykłady) Moje projekty (EDIT: to bedzie dzialalo) Notka dla FiDa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) czy mógłbyś przeprowadzić mini testy szybkości? Kompletnie się na tym nie znam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jest to 1 RC wersja ;] wszelkie pomysły mile widziane.. Parser nie obsluguje jeszcze zmiennych globalnych(kombinuje jak to tam dokleić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) oraz funkcji @include() - ale ją dopisze jak wstane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz czas na sen ';) Ten post edytował SHiP 25.11.2006, 21:06:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 505 Pomógł: 0 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://pliki.jarzebski.pl/bench/bench.jpg)
Apache Benchmark : -c 900 -n 300 Maszyna P4 2.8GHz HT + 1,5GB Ram Szablon testowy : Cytat {@inc("header.html")} <table border="1" cellspacing="0" cellpadding="1"> {@list(newsy)} {@cycle(cls,"par,odd")} <tr class="{cls}"> <td width="15%">ID: {newsy['id']}</td> <td width="*"> {@if(newsy['autor'])} {newsy['autor']|strtoupper} ({newsy['mail']}) {@else} anonim {@fi} </td> </tr> <tr class="{cls}"> <td colspan="2"> <h4>{newsy['tytul']|ucfirst}</h4>{newsy['tresc']} </td> </tr> <tr class="{cls}"> <td>{newsy['data']|date("Y-m-d H:i:s")}</td> <td>{@if(newsy['komentarze'])}[<a href="?news_id={newsy['id']}">{newsy['komentarze']} komentarze</a>]{@else}Brak komentarzy{@fi}</td> </tr> {@end} </table> {@inc("footer.html")} Cytat <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > <head> <title>{title}</title> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /> <meta name="keywords" content="{keywords}"> <style type="text/css"> body { background-color: #F0F5FA; font-family: Tahoma; font-size: 13px; } img { border: none; } form { display: inline; } h3 { font-size: 1.3em; font-family: Verdana; font-weight: normal; } tr.par { background-color: #ccc; } tr.odd { background-color: #ddd; } /* divek centrujacy */ div.center>* { margin-left: auto; margin-right: auto; } div.center { text-align: center; } /* linki */ a { color: black; text-decoration: none; } a.small { font-size: smaller; } /* linki w tabeli */ tr.odd a, tr.par a { color: #333; } /* linki w menu */ div#menu a, div#menu a:active, div.separator { display: block; background-color: #808080; font-weight: bold; border-bottom: 1px solid #A9A9A9; padding: 3px 0 3px 0.7em; } div#menu a.submenu { background-color: #bbb; padding: 2px 0 2px 0.7em; } div#menu a:hover { background-color: #999; } </style> </head> <body> Cytat <h3>{footer}</h3>
{footer|strtolower} </body> </html> |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 04:07 |