konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Michał C.:
A ja jakos jestem przeciwnikiem Szablonow Dobrze zaprojektowana aplikacja zgodna z MVC w zupełnosci wystaczy. Postepuje tak Symfony i wiele innych dobrych frameworkow. Sam php jako system szablonów jest bardzo najbardziej elastyczny ;). Tyle ode mnie :)

Przecież smarty kompiluje szablony własnie do plików PHP. I IMHO MVC wcale nie kłóci się z szablonami, a wręcz przeciwnie. Szablony zdecydowanie ułatwiają życie i trudno się z tym nie zgodzić.
Michał C.

Michał C. Deputy Head of
Software Development

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Mateusz B.:
Michał C.:
A ja jakos jestem przeciwnikiem Szablonow Dobrze zaprojektowana aplikacja zgodna z MVC w zupełnosci wystaczy. Postepuje tak Symfony i wiele innych dobrych frameworkow. Sam php jako system szablonów jest bardzo najbardziej elastyczny ;). Tyle ode mnie :)

Przecież smarty kompiluje szablony własnie do plików PHP. I IMHO MVC wcale nie kłóci się z szablonami, a wręcz przeciwnie. Szablony zdecydowanie ułatwiają życie i trudno się z tym nie zgodzić.
Mi one utrudniaja, ale kazdy ma inne zdanie.

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Michał C.:
Mi one utrudniaja, ale kazdy ma inne zdanie.
Nie portafię sobie tego wyobrazić, może pokażesz kawałek swojego kodu Widoku z MVC?
Michał C.

Michał C. Deputy Head of
Software Development

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Prosze bardzo:
http://phpfi.com/232485

Komentarz jest dodany dla wygody. Dzięki temu Eclipse podpowiada mi wszystkie dostepne metody dostepne z tej zmiennej :>
Zrob mi tak w Smarty :>
Karol Traczykowski

Karol Traczykowski Head of New Ventures
@ ZnanyLekarz.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

szablony to nie tylko Smarty :)

kod kolegi Michała w pliku z warstwy widoku, charakterystyczny dla kilku frameworkow, tez nazwalbym szablonem, tyle ze uzywajacym pseudo-skladni php.

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

@Michał ale gdzie tu rozdzielenie PHP od HTML?
Michał C.:
Zrob mi tak w Smarty :>

W *.php:
$smarty->assign('oUser', $oUser);

W szablonie:
<h2>Info o uzytkowniku {$oUser->getLogin()}</h2>
Imie: <b>{$oUser->getImie()}</b><br />
Nazwisko: <b>{$oUser->getNazwisko()}</b><br />

To i tak zostanie skompilowane przez Smarty do postaci takiej jak Twoja, a dla mnie jest bardziej czytelne. Poza tym można wtedy rozdzielić pracę między dwie osoby: programistę i designera, który nie musi znać PHP a tylko składnię Smarty, żeby tworzyć szablony HTML.Mateusz Borowski edytował(a) ten post dnia 07.05.07 o godzinie 22:31
Michał C.

Michał C. Deputy Head of
Software Development

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Temat szablonów w PHP jest jak Windows vs Linux. Kazdy wytacza swoje za i przeciw. Wniosek jest jeden: kazdy uzywa tego co mu bardziej odpowiada.

@Mateusz: Ale po co całkowicie usuwac PHP z szablonu? Od tego jest MVC i nalezy tak zaprojektowac wszystko zeby pomagało. W tym przykładzie co podałes... Jaka jest roznica dla designera czy wpisze <b>{$oUser->getImie()}</b> czy <b><?=$oUser->getImie?>?
NO dobra moze mniej o 3 znaki. Tylko tyle. A składnia Smarty jest na tyle rozbudowana, ze wg mnie jeden grzyb zy pozna smarty czy PHP. Do mnie jeszcze przemawia fakt ze mam podpowiadanie kodu. Moze taki przykład: Mowisz jakiemus designerowi masz tu takie cos $oUser i po wpisaniu $oUser-> wyswietli ci sie cała lista "rzeczy" ktore mozesz wstawic :) Nie musi szukac w dokumantacji czy w czyms innym jesli chce powpisywac wszystkie znaczniki (a moze byc ich bardzo duzo przeciez).
Dawid Baruch

Dawid Baruch PHP & IP.Board
Developer

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

zawsze możesz napisać własny prosty system szablonów. Ucieszysz sie jeszcze bardziej a wcale to nie jest takie skomplikowane, pod warunkiem, oczywiście, że nie ma to być jakiś super użyteczny system szablonów, w którym możesz zrobić praktycznie wszystko :)

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Hm, chyba nikt nie napisał o jednym sposobie jaki użyłem z kolegami w jednym projekcie.

W PHP generujesz sobie XML, a potem ten XML za pomocą XSLT przerabiasz w HMTL.

<?
$dom_xml = new DomDocument('1.0', 'UTF-8');
// tu tworzysz wezly

// $params moze trzymac dodatkowe zmienne dostepne
// globalnie w xslt, np. $script
$params['foo'] = $_SERVER['DOCUMENT_ROOT'];

// funkcja (u nas byla to metoda w klasie), ktorej podajesz
// drzewo xml, arkusz xslt ktory ma przetwarzac to i tablice
// parametrow
RenderHtml($dom_xml, "xsl/foto_show.xsl", $params);

// koniec pliku
?>

function RenderHtml(&$doc, $xsl_file, &$params)
{
// xslt processor
$xp = new XsltProcessor();

// DOM document do wczytania xsl
$xsl = new DomDocument;

if ($xsl->load($xsl_file) === false)
{
// wyskakujemy jak sa bledy xsl zeby nie zasmiecac dalej ekranu
// zaloguj blad gdzies jakos
return;
}

// import xsl do xslt processora
$xp->importStylesheet($xsl);

// dodatkowe parametry do namespace ''
if ($params != NULL) {
$xp->setParameter('', $params);
}

// transformata
if ($html = $xp->transformToDoc($doc)) {
echo $html->saveHTML();
} else {
// zaloguj blad
}

}

No i do tego plik XSLT.

Dzieki temu PHP zawsze generuje tylko XML, ktory moze przetwarzac dowolna aplikacja.
Dzieki temu HTML czy inny format jaki zdecydujesz sie wygenerowac moze byc dodatkowo dynamicznie obrabiany za pomoca funkcji xslt: warunkowych, matematycznych, pozycji i ilosci wezlow, itd...

Wiec:
- masz rozdzielenie contentu od logiki
- content moze byc dodatkowo dynamicznie obrabiany
- content i logike moge robic rozni ludzie

Konkretniejsze przyklady (pliki) moge zapodac jak ktos chce.Maciej Sołtysiak edytował(a) ten post dnia 14.05.07 o godzinie 12:46
Michał C.

Michał C. Deputy Head of
Software Development

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Wiem, ze takie coś istnieje, ale dokladniej jeszcze sie z tym nie zetknąłem. Za jakiekolwiek materiały byłbym wdzięczny :)

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Ja większość systemów szablonów mam w głębokiej pogardzie, bo łatwiej w nich zrobić niepoprawną, dziurawą tagzupę, niż cokolwiek poprawnego. Jedym z niewielu chlubnych wyjątków jest PHPTAL:

http://pornel.net/szablony
Stanisław P.

Stanisław P. Software designer

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

A ja to polecę: http://www.cakephp.org/
Jest to po prostu implementacja idei RoR w php5. Automatyczne przełożenie model -> baza, pełny MVC, active records, framework do ajax'a, weryfikacji, etc.
Miodzio - dodatkowo w małych projektach nie trzeba pisać praktycznie żadnego nadmiarowego kodu, żeby sam Cake ruszył. A scaffolding pomaga na starcie.
Michał C.

Michał C. Deputy Head of
Software Development

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

@Stanisław Pitucha: to jest temat o rozdzielaniu htmla od php a nie o frameworkach. Swoja drogą cake śmierdzi :P
Krzysztof Pałka

Krzysztof Pałka Dyrektor
Departamentu
Software
Development, Grupa
Wirtual...

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Nie żebym się wymądrzał ;), ale Smarty i pomysł z XSLT najlepsze metody na zabicie wydajności każdej aplikacji i nigdy nie zastosowałbym ich w serwisach o dużym trafiku. Też kiedyś lubiłem Smarty, ale teraz uważam że czyste PHP jest jedynym słusznym sposobem tworzenia szablonów.

PS. Sprawdzał ktoś z Was jak wygląda "PHP" generowane przez Smarty? Pomijając najprostsze przepadki, koszmar. :|
Michał W.

Michał W. Consultant Engineer
Remote Support at
Application Support

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Krzysztof P.:
Nie żebym się wymądrzał ;), ale Smarty i pomysł z XSLT najlepsze metody na zabicie wydajności każdej aplikacji i nigdy nie zastosowałbym ich w serwisach o dużym trafiku. Też kiedyś lubiłem Smarty, ale teraz uważam że czyste PHP jest jedynym słusznym sposobem tworzenia szablonów.

PS. Sprawdzał ktoś z Was jak wygląda "PHP" generowane przez Smarty? Pomijając najprostsze przepadki, koszmar. :|

do ps:

a czy masz na to jakies przyklady?
Maciej Filipiak

Maciej Filipiak właściciel, VizMedia

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

frameworki, smarty i inne zagmatwacze kodu
mają jedną wielką wadę - nauczycie się ich a potem wchodzą nowe wynalazki i nowe wersje i cała wasza wiedza idzie w niwecz.

Tymczasem programowanie obiektowe jest już samo w sobie utrwalonym standardem i całkowicie wystarcza.

Naprawdę nie widzę żadnego ułatwienia pracy między

<H1>{$tytul}</H1>
a
<H1><?= $tytul ?></H1>

Bez frameworków macie większą kontrolę nad swoim kodem.

to taka opinia starego dinozaura ...
Michał C.

Michał C. Deputy Head of
Software Development

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Maciej F.:

Bez frameworków macie większą kontrolę nad swoim kodem.

to taka opinia starego dinozaura ...
Ale za to duzo wiecej czasu trzeba poswiecic na pisanie. A jak sie ma wlasny framework to argument z tą kontrola jest chybiony :P
Maciej Filipiak

Maciej Filipiak właściciel, VizMedia

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

własny framework - OK :)
czyli tak pisać, żeby nie trzeba bylo dwa razy odkrywać ameryki.

Ale ja dałem akcent na "własny" [framework|kod|biblioteka|...]

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Hm, też nie lubię wszelkiego rodzaju mieszaczy typu smarty itp, nowa składnia, nie zawsze można osiągnąć taki efekt jak w czystym php, trzeba się nakombinować, wydajność itp, itd.
Ja też korzystam z własnego silnika (bo frameworkiem tego nazwać jeszcze nie można) w oparciu o MVC i nie mam najmniejszych kłopotów z wytłumaczeniem komuś kto np składa szablon co i jak zrobić. Moje rozwiązanie - kontroler podczas ładowania widoku jako drugi parametr podaje tablice z wszystkimi danymi, dzięki temu kod szablonu jest bardziej przejrzysty.
Marcin Nabiałek

Marcin Nabiałek Certyfikowany
programista PHP i
Laravel

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Ja odkąd poznałem i nauczyłem się Smarty, uważam, że warto ich używać. Nie rozumiem po co pisać własne systemy i bawić się w "pseudoszablony" skoro Smarty są dobrze przetestowanym systemem o dużych możliwościach. Ponadto stosowanie typowych szablonów zmusza programistę do zachowania czytelności kodu.

Wszystko odbywa się oczywiście kosztem nieco mniejszej wydajności, ale po zastosowaniu np. wbudowanego w Smarty mechanizmu cachowania, wychodzi na to samo albo nawet na +.

Poza tym podejrzewam, że przy stosowaniu typowego systemu szablonów, w razie już jakiejś większej konieczności stosunkowo łatwiej przejść na inny system szablonów - ale ja nie mam takiego zamiaru - w Smarty natknąłem się póki co tylko na kilka ograniczeń, które można spokojnie obejść zaszywając problematyczne kwestie w PHP.



Wyślij zaproszenie do