Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Domyslny system szablonow dostarczany przez ZF jets tragiczny, postanowilam wiec wdrozyc smarty. Znalazlam kilka tutoriali na stronach i... nic z tego nie wyszlo.

Co nie zrobie mam internal server error.

Czy ktos moglby wspomoc newbie we wdrozeniu Smartow do ZF?
Łukasz Ważny

Łukasz Ważny winning doesn't
really matter as
long as you win

Temat: ZF + Smarty

Czy ktos moglby wspomoc newbie we wdrozeniu Smartow do ZF?

brrrrr
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Łukasz Ważny:
Czy ktos moglby wspomoc newbie we wdrozeniu Smartow do ZF?

brrrrr

No co 'brrr'... kazdy kiedys stawial swoja pierwsza aplikacje na zf... Ja akurat nie mam zadnego wsparcia... Z googla umiem korzystac, ale moja wiedza z zakresu samego zf wciaz chyba jest za mala, bo mimo wielu prob wdrozenia smarty wciaz mam 500 - internal server error

Zamiast 'brrr' jakies podpowiedzi by sie przydaly.
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: ZF + Smarty

A z ciekawości - dlaczego uważasz, że system szablonów ZF jest tragiczny?
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Bartosz Ratajczyk:
A z ciekawości - dlaczego uważasz, że system szablonów ZF jest tragiczny?

Bo mieszanie html ze wstawkami php nie ułatwia pracy nikomu... z takiego sposobu pisania aplikacji wyrosłam jakieś 8 lat temu i nie planuję powrotu. Od 2002 roku korzystam z szablonów, bo ułatwia to współpracę z grafikami, webmasterami i innymi nietechnicznymi osobami. Ze o zwiększeniu czytelności kodu nie wspomnę.

Ale zamiast rozmawiać o wyższości świąt Bożego Narodzenia nad Wielkanocnymi wolałabym się dowiedzieć, jak w miarę bezboleśnie wdrożyć smarty...

konto usunięte

Temat: ZF + Smarty

Do wersji 1.8 działało na przykład takie "cóś": http://blog.adryjanek.eu/2008/11/14/zend-framework-sma... (wielokrotnie wypróbowane)

od wersji 1.8 znalazłem w sieci coś takiego: http://www.forum.zend-framework.pl/forum/viewtopic.php... - nie wiem czy działa...
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: ZF + Smarty

Myślę, że nie powinno się uciekać od dyskusji na temat technologii smarty w ZF. Przecież to straszny grzech nie korzystać po prostu z Zend_View i skróconej formy phpowej. Po co tutaj smarty?

Ja twierdzę, że właśnie ten system szablonów, jakim jest smarty, tworzy widok mało czytelnym oraz mało elastycznym. Zend_View + Helpery + skrócona forma php w 100% powinna wystarczyć i nie trzeba się grzebać z dodatkową warstwą.Artur Świerc edytował(a) ten post dnia 25.03.10 o godzinie 14:26

konto usunięte

Temat: ZF + Smarty

Artur Świerc:
Myślę, że nie powinno się uciekać od dyskusji na temat technologii smarty w ZF. Przecież to straszny grzech nie korzystać po prostu z Zend_View i skróconej formy phpowej. Po co tutaj smarty?

Możemy poduskutować... ale załóż nowy wątek, bo zdaje się, że Maja zadała nieco inne pytanie...
Ja twierdzę, że właśnie ten system szablonów, jakim jest smarty, tworzy widok mało czytelnym oraz mało elastycznym. Zend_View + Helpery + skrócona forma php w 100% powinna wystarczyć i nie trzeba się grzebać z dodatkową warstwą.Artur Świerc edytował(a) ten post dnia 25.03.10 o godzinie 14:26

Należałoby rozpatrzeć dla kogo SMARTY są czytelne a dla kogo nie: jeżeli założy się, że HTML tworzy programista, może to być dla niego "niepotrzebnym" wprowadzaniem "bałaganu" i wymuszenie się uczenia nowych znaczników... Natomiast jeżeli HTMLem zajmuje się front-endowiec, to dzięki zastosowaniu systemu szablonów (nie musi to być smarty) unika on dłubania w PHP - co czasem może spowodować duże błędu w aplikacji...
Łukasz Ważny

Łukasz Ważny winning doesn't
really matter as
long as you win

Temat: ZF + Smarty

Maja Miarecka:
Zamiast 'brrr' jakies podpowiedzi by sie przydaly.

Poprostu szkoda do ZF wsadzać Smarty. Bo albo się namęczysz, albo klasy używające Zend_View przestaną działać ładnie - Zend_Layout, Zend_Form, placeholdery, ViewHelpery itp i w końcu dojdziesz do wniosku, że potrzebujesz i Zend_View bo jest potrzebny i Smartów bo już kawałek projektu jest na tym napisany.

A jak już się upierasz na smarty i masz internal server error to spróbuj sprawdzić czy skrypt ma prawa do zapisu w templates_c

oraz

$smarty->error_reporting = E_ALL

error_reporting(E_ALL);
ini_set("display_errors", 1);

no tail -f na logi z serwera http i na loga z errorami z php.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Artur Świerc:
Myślę, że nie powinno się uciekać od dyskusji na temat technologii smarty w ZF. Przecież to straszny grzech nie korzystać po prostu z Zend_View i skróconej formy phpowej. Po co tutaj smarty?

Ja twierdzę, że właśnie ten system szablonów, jakim jest smarty, tworzy widok mało czytelnym oraz mało elastycznym. Zend_View + Helpery + skrócona forma php w 100% powinna wystarczyć i nie trzeba się grzebać z dodatkową warstwą.Artur Świerc edytował(a) ten post dnia 25.03.10 o godzinie 14:26

Z mojego puntu widzenia to śmietnik, webmaster, który będzie się bawił w warstwę prezentacji złapał się za głowę, jak zobaczył, jak wygląda kod. Od wielu lat są wprowadzane pewne standardy oddzielania warstwy prezentacji od logiki (jak sama nazwa mvc wskazuje), na tę chwilę Zend_View z jego phtml-ami widzę jako powrót do praktyk z epoki php3.

Rozumiem, ze Zend czuje się najlepiej wdrażając własne rzeczy i uniemożliwiając wdrożenie standardu uznawanego przy współpracy programista-frontend od lat, ale to nie oznacza, ze ja muszę się do tego dostosować.

Większość sensownych frontendowcow ma opanowane Smarty albo Opt. Żaden nie czuje się pewnie przy misz-maszu html+php. Nie zamierzam nikomu narzucać technologii, tym bardziej, ze sama nie lubię jak ktoś tak postępuje wobec mnie. Skoro webmaster zna i dobrze się czuje w smarty to dostanie smarty. Z ZF albo bez. Na szczęście mamy wybór frameworkow na rynku :)

Czy znajdzie się tu jakaś dobra dusza, która pozwoli mi pisać do siebie na pw, żeby nie zasmiecać forum z pytaniami o szczegóły z którymi sobie nie radze?
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Łukasz Ważny:
Poprostu szkoda do ZF wsadzać Smarty. Bo albo się namęczysz, albo klasy używające Zend_View przestaną działać ładnie - Zend_Layout, Zend_Form, placeholdery, ViewHelpery itp i w końcu dojdziesz do wniosku, że potrzebujesz i Zend_View bo jest potrzebny i Smartów bo już kawałek projektu jest na tym napisany.

Ale ja nie widzę tutaj niczego, czego smarty mi nie oferują... Może mój projekt nie jest na tyle skomplikowany, żebym odczuła brak tych rzeczy... Nie wiem.
A jak już się upierasz na smarty i masz internal server error to spróbuj sprawdzić czy skrypt ma prawa do zapisu w templates_c

oraz

$smarty->error_reporting = E_ALL

error_reporting(E_ALL);
ini_set("display_errors", 1);

no tail -f na logi z serwera http i na loga z errorami z php.

Okazało się, że mimo moich wysiłków PHP miało wy-offowane raportowanie błędów. Teraz już mi wszystko ładnie wali errorami po ekranie :) Ale widzę, że czeka mnie jeszcze trochę pracy.
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: ZF + Smarty

Maja Miarecka:
Z mojego puntu widzenia to śmietnik, webmaster, który będzie się bawił w warstwę prezentacji złapał się za głowę, jak zobaczył, jak wygląda kod. Od wielu lat są wprowadzane pewne standardy oddzielania warstwy prezentacji od logiki (jak sama nazwa mvc wskazuje), na tę chwilę Zend_View z jego phtml-ami widzę jako powrót do praktyk z epoki php3.

Chyba kod z którym pracowałaś nie był napisany zgodnie ze wzorcami, lub w ogóle nie był to kod napisany w ZF skoro twierdzisz, że logika była wymieszana z prezentacją - pogratulować programiście.

Smarty:
 
{if ! $saWartosci}
<div>Przepraszamy, nie ma wyników.</div>
{else}
<table>
{foreach from=$result item="row"}
<tr>
<td>{$row.imie}</td>
<td>{$row.nazwisko}</td>
<tr>
{/foreach}
</table>
{/if}


Zend_View / zwykły php:
 
<?php if (! $this->saWartosci): ?>
<div>Przepraszamy, nie ma wyników.</div>
<?php else: ?>
<table>
<?php foreach ($result as $row): ?>
<tr>
<td><?php echo $row->imie ?></td>
<td><?php echo $row->nazwisko ?></td>
<tr>
<?php endforeach ?>
</table>
<?php endif ?>


Jak widać, podstawowe rzeczy, if i for each nie różnią się zbytnio od siebie w obu prezentacjach. Ale problem wychodzi później, tak jak już pisał Łukasz wcześniej: Layout, Helpery, Formy itp Po co w ogóle zaciągać ZF jeśli ma się zamiar używać smarty, usuwamy całe ficzery, które Zend nam daje - tutaj z naciskiem na Zend_Form (walidacje, edycja itp)

Być może ludzie, którzy używają smarty nie wiedzą jakie ograniczenia sobie stawiają rezygnując z bibliotek, które daje ZF. Nie wiedzą z czego rezygnują.Artur Świerc edytował(a) ten post dnia 26.03.10 o godzinie 08:26
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Artur Świerc:
Chyba kod z którym pracowałaś nie był napisany zgodnie ze wzorcami, lub w ogóle nie był to kod napisany w ZF skoro twierdzisz, że logika była wymieszana z prezentacją - pogratulować programiście.

To byl kod zalaczony do ZF. Twoj przyklad juz pokazuje podstawowe roznice. W smarty wstawiasz zmienna. Bez echa, znacznikow, niczego. Po prostu zmienna. Uwierz mi dla webmastera roznica pomiedzy:

<td>{$row.imie}</td>

a

<td><?php echo $row->imie ?></td>


jest spora. Zwlaszcza jesli takich wstawek w kodzie masz duzo.
Framework ma spelniac warunki mvc, a to co oferuje zend_view nie bardzo to spelnia. Dla mnie to jak powrot do pisania w php3, jak jeszcze idea template'ow nie byla powszechnie znana.

Ale to moje zdanie, nie musisz sie z nim zgadzac.

Inna sprawa ze zamkniecie sie ZF na template'y (czyli uniemozliwienie polaczenia ich z funkcjonalnoscia) tez duzo mowi o podejsciu programistow ZF do uzytkownikow.
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: ZF + Smarty

Maja Miarecka:
Artur Świerc:
Chyba kod z którym pracowałaś nie był napisany zgodnie ze wzorcami, lub w ogóle nie był to kod napisany w ZF skoro twierdzisz, że logika była wymieszana z prezentacją - pogratulować programiście.

To byl kod zalaczony do ZF. Twoj przyklad juz pokazuje podstawowe roznice. W smarty wstawiasz zmienna. Bez echa, znacznikow, niczego. Po prostu zmienna. Uwierz mi dla webmastera roznica pomiedzy:

<td>{$row.imie}</td>

a

<td><?php echo $row->imie ?></td>


jest spora. Zwlaszcza jesli takich wstawek w kodzie masz duzo.

Racja, można też bardziej zaawansowane przykłady:
... onClick="f({$x|escape:'javascript'})" ...


Nie mówiąc już o definiowaniu własnych tagów, gdzie strona może wyglądać na przykład tak:

{moja_strona}
{moj_header} cośtam {/moj_header}
{moja_tresc}
{logo_firmy id="$firma.id"} cośtam cośtam
{/moja_tresc}
{/moja_strona}
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Wszystko mozna, ale mowie o ulatwieniu wspolpracy programista - frontendowiec a nie utrudnianiu. Inna sprawa, ze trzeba miec wyczucie, gdzie kombinowanie w smartach daje widoczny narzut czasowy.
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: ZF + Smarty

Maja Miarecka:
Wszystko mozna, ale mowie o ulatwieniu wspolpracy programista - frontendowiec a nie utrudnianiu.

To właśnie ułatwia, frontendowiec tworzy szablon dla strony, dla headera, dla logo firmy, a programiasta to bierze i używa to złożenia kolejnej strony nie martwiąc się o kod HTML/Smarty jaki za tym stoi.
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: ZF + Smarty

Bartłomiej Ogryczak:
To właśnie ułatwia, frontendowiec tworzy szablon dla strony, dla headera, dla logo firmy, a programiasta to bierze i używa to złożenia kolejnej strony nie martwiąc się o kod HTML/Smarty jaki za tym stoi.

Tylko cały czas nie bierzesz jednej rzeczy pod uwagę. Najczęściej używanym szablonem jest smarty. Używanie kodu php w html jest piętnowane. Frontendowcy pracują wg standardów w Smarty. I tak jest im najłatwiej pracować.

Nie będę, tylko dlatego, ze twórcy frameworku nie umieli dostosować się do panujących standardów, utrudniać pracy frontendowcom.
Bartłomiej Ogryczak

Bartłomiej Ogryczak Backend Developer @
Layar

Temat: ZF + Smarty

Maja Miarecka:
Bartłomiej Ogryczak:
To właśnie ułatwia, frontendowiec tworzy szablon dla strony, dla headera, dla logo firmy, a programiasta to bierze i używa to złożenia kolejnej strony nie martwiąc się o kod HTML/Smarty jaki za tym stoi.

Tylko cały czas nie bierzesz jednej rzeczy pod uwagę. Najczęściej używanym szablonem jest smarty. Używanie kodu php w html jest piętnowane. Frontendowcy pracują wg standardów w Smarty. I tak jest im najłatwiej pracować.

Nie będę, tylko dlatego, ze twórcy frameworku nie umieli dostosować się do panujących standardów, utrudniać pracy frontendowcom.

Eh? Przykłady które podałem, to właśnie Smarty.
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: ZF + Smarty

To nie twórcy ZF nie dostosowali się do "standardów". Oni zaproponowali rozwiązanie, które nie wymaga bibliotek zewnętrznych, dzięki czemu ktoś kto nie lubi smarty może bez problemu pracować albo z dostarczonym rozwiązaniem szablonów, albo samodzielnie dopasować sobie dowolny inny (smarty, PHPTAL, Haml, ...)

Osobiście nie widzę wielkiej różnicy między

<td>{$zmienna}</td>


a

<td><?= $zmienna; ?>


(oczywiście jeśli ma się włączone niezalecane short_open_tag)
Łukasz Ważny

Łukasz Ważny winning doesn't
really matter as
long as you win

Temat: ZF + Smarty

Maja Miarecka:
Po prostu zmienna. Uwierz mi dla webmastera roznica pomiedzy:

<td>{$row.imie}</td>

a

<td><?php echo $row->imie ?></td>


jest spora. Zwlaszcza jesli takich wstawek w kodzie masz duzo.
Framework ma spelniac warunki mvc, a to co oferuje zend_view nie bardzo to spelnia. Dla mnie to jak powrot do pisania w php3, jak jeszcze idea template'ow nie byla powszechnie znana.

To jeszcze zapytaj programistę czy woli używać tablic zamiast obiektówki oraz przaanalizuj ile czasu zyskasz używając jakiegoś ORM'a.

Z tego co wiem w wersji 2.x Smartów nie bardzo można sensownie używać bardziej skomplikowanych wywołań metod typu $category->getItem($i)->getName(), więc używanie np Doctrine jest problematyczne i musisz się bawić assignami w szablonach.

W ZF masz separację na warstwy widoku, na składa się Zend_Layout, Zend_View i wszystkie helpery, viewScripty itp. W tym, że php przeplata się z html nie ma nic złego, o ile nie jest to robione w akcji, a w skrypcie widoku. Html jest generowany przez dość ładne obiekty, a nie smarty, które tak naprawde i tak zrobią Ci php'a.

Następna dyskusja:

ZF + Smarty - problem do ro...




Wyślij zaproszenie do