ďťż
Podstrony
|
telcocafeMam nadzieję, że kolejna ankieta nie przeszkadza tutaj i pozwoli na wybór właściwej drogi. :)Rozpocząłem zmianę struktury szablonów dla poszczególnych modułów (art, news, plik...), by nie zawierał kodu PHP, lecz zmienne {title}, {date}... Webmaster popularnej witryny zaprotestował, ponieważ w tych plikach stosuje modyfikacje danych dla własnych potrzeb (aby uzyskać inny wygląd niż narzucony). Scharakteryzuję 3 możliwe opcje. Skórki z kodem PHP Aby zachować przejrzystość, zmienne będą wyświetlane tak: <?= $zmienna ?>, choć nie zawsze. W przypadku modułu nowości (jest ich więcej na 1 stronie) w skórce raczej musi znajdować się FUNKCJA (bo nie będzie się kilka razy dołączać tego samego pliku, nie?). + Swoboda modyfikacji + Dostęp do innych zmiennych, funkcji, stałych... + Szybkość - Mniejsza przejrzystość - Utrudnienie dla osób nieznających PHP Skórki ze zmiennymi {var} Użycie funkcji file_get_contents() i str_replace(). Należy wywoływać str_replace() kilkakrotnie bądź utworzyć tablicę i przekazać ją jako argument. Zmienne to np. {name}, {title}, {lang.desc}... Uprzedzam, że systemy szablonów odpadają. + Duża przejrzystość + Ułatwienie dla osób nieznających PHP + Łatwość modyfikacji (o ile nie trzeba dodać innej zmiennej) - Ograniczenie swobody modyfikacji oraz ilości użytych zmiennych - Być może sposób trochę wolniejszy (maks. o 2-3 ms.) lub bez różnicy - Prawdopodobnie większe zużycie RAM-u Sposób 1 + interpreter Podział skórek na sp. I i II spowodowałby większy bałagan w kodzie tych modułów. Jest jeszcze inne rozwiązanie - utworzenie wtyczki lub wbudowanego modułu, który zapisze zmodyfikowany kod plików .tpl do .php. Wtedy prawdopodobnie skórki do pobrania będą rozpowszechniane w postaci bez kodu PHP (mniej problemów z kompatybilnością między różnymi wersjami skryptu) - trzeba będzie je "kompilować" w panelu administracyjnym. + Zalety rozwiązania 1 i 2 + Kto umie PHP, modyfikuje od razu .php, a kto nie - .tpl i używa wtyczki + Interpretowanie stylów innych systemów (?) + Możliwość użycia większej ilości zmiennych (w tym językowych), instrukcji warunkowych... w skórkach prostych - Zapis może nie przebiec poprawnie - Po modyfikacji kodu trzeba go zapisać, używając wtyczki Głosujcie. :) Wypowiadajcie się tylko wtedy, gdy macie coś do powiedzenia odnośnie tematu ankiety. Użytkownik Ferrari edytował ten post 01 czerwiec 2007, 11:44 trochę zakręcona ta ankieta, powinna być też wielokrotnego wyboru + Szybkość ... - Prawdopodobnie większe zużycie RAM-u+ Szybkość Na poziomie nanosekund. Taka quasi "optymalizacja" nie ma zupełnie sensu, gdyż i tak wąskim gardłem będą zapytania SQL czy też operacje na plikach (jeżeli w ogóle) Ograniczasz jakość i funkcjonalność na rzecz bezsensownej optymalizacji. Przykład - PHP-Fusion, który w licznych moich testach wygrywał. Niedawno pojawił się przypadek, w którym instalacja PHP-Fusion zabijała kolejne serwery, w tym dobry VPS. Właściciel strony przesłał mi zrzut tabel z artykułami (Fusion służył do przechowywania artykułów) i okazało się że winnym jest widok kategorii artykułów - wykonywane zapytania COUNT wykonywały się bardzo długo - 45 zapytań (45 kategorii) COUNT wykonywało się bardzo wolno bo artykułów było ponad 4500 sztuk (60MB w bazie). Przeróbka zapytań na jedno z JOINem niewiele dało. Dopiero dodanie do tabeli kategorii pola na ilość artykułów i nie wykonywanie COUNT za każdą odsłoną listy kategorii rozwiązało problem ;) Wykonanie kodu PHP to nie problem. System szablonów - prosty system szablonów z dziedziczeniem i prostym zestawem tagów (jak smarty, tyle że mniej) +/- z możliwością wstawiania kodu PHP, kompilowane do czystych plików PHP: index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>{% block title %}Moja strona{% endblock %}</title> <meta name="keywords" content="" /> <meta name="description" content="" /> </head> <body> cośtam... {% block content %}{% endblock %} cośtam.. </body> </html> jakiśmoduł.php: {% extends "index.php" %} {% block content %} Treść jakaśtam {% endblock %} Użytkownik Riklaunim edytował ten post 01 czerwiec 2007, 15:23 ja bym jednak użył gotowca smarty chameleon etc.... Użytkownik bikstopa edytował ten post 02 czerwiec 2007, 12:18 |
|||
Sitedesign by AltusUmbrae. |