codeIgniter + smarty = czy to optymalne ?

0

Witam,

Fajnie się programuje w CI, jednak jest jedna rzecz, które mnie denerwuje, a mianowicie wstawki kodu HTML w php, i ogólnie wstawki php w kodzie HTML.

Czy stosowanie dodatkowo SMARTY jest dobrym, czy złym pomysłem? Czy system nie będzie za bardzo obciążony ?

pozdrawiam

0

Moim zdaniem nie ma sensu stosowac kolejnej warstwy posredniej jaka jest Smarty. Jezeli korzystasz z frameworka CodeIgniter, to wiesz, ze jest on oparty o model MVC. Model ten zaklada rozdzielenie warstwy logicznej od prezentacji. W warstwie prezentacji moga znajdowac sie drobne wstawki kodu PHP, takie jak:

<p>Typ: <?= $type; ?></p>

Moim zdaniem Smarty to przezytek (przy obecnej popularnosci modelu MVC).

0

A ja się zgadzam - system szablonów CodeIgnitera (oraz np. Zenda czy ASP.NET MVC) jest nieprzyjemny, mnie osobiście o wiele bardziej podoba się Smarty niż te <?php echo $whatever; ?> wszędzie. Jednakże, to jest MVC - możesz przerobić CodeIgnitera tak, aby zamiast standardowej klasy widoku używany był Smarty. Napisałem tak 3,5 systemu, nie wiem jednak jak bardzo miałoby to obciążać serwer - prawdopodobnie nie bardziej niż używanie Smarty poza CI.

0

to w takim razie, stosowanie skróconego zapisu, typu:

<?= $wartosc; ?> 

jest wskazane?
czy może się zdarzyć, że na jakimś serwerze ten sposób oznaczania skryptów php będzie wyłączony?
na moim prywatnym serwerze to było domyślnie wyłączone..

0

Smarty zawsze bedzie wolniejsze niz uzycie czystego kodu PHP. Co prawda Smarty posiada jakis tam system cache'u, ktory trzyma "skompilowane" wersje szablonow. Ale nalezy pamietac, ze Smarty stanowi kolejna warstwe posrednia. Podobnie wolniejsze bedzie uzycie PDO, niz bezposrednie odwolanie sie do biblioteki obslugi bazy danych.

Smarty uzywalem, ale pare lat temu. I nie zamierzam ponownie do tego wracac. To jest dla mnie utrudnienie pracy.

0

Kwestia wygody programisty, bezpieczeństwa, łatwości utrzymywania jest ważniejsza od bliżej nieokreślonego "przyspieszenia aplikacji". Jeśli używanie PHP do szablonów naprawdę Ci nie leży, to IMO spokojnie możesz używać Smarty -- tym bardziej, że są całkiem szybkie. Większość problemów z wydajnością po stronie szablonów powinno załatwić cache'owanie.

Sytuacja robi się inna, gdy z testów czy szacunków wyjdzie nam, że użycie Smarty w istotny sposób spowolni aplikację. To nie chodzi o to, że Smarty będzie np. 2x wolniejsze od czystego PHP w szablonach. Dwukrotne przyspieszenie aplikacji opłaca się bardzo często. Ale tu mowa tylko o warstwie widoku. Dwukrotne przyspieszenie tej warstwy NIE przyspieszy dwukrotnie całej aplikacji. Może być tak, że generowanie widoku po stronie PHP to tylko 10% czasu generowania strony, a resztę stanowią odwołania do bazy danych i jakieś skomplikowańsze rzeczy w kontrolerach. Jeśli to generowanie widoku przyspieszysz dwukrotnie, to cała aplikacja przyspieszy ledwie o ~5%. Warto zauważyć, że dla użytkownika często o wiele dłużej trwa ładowanie widoki strony do przeglądarki niż generowanie HTML-a po stronie serwera. Może na serwerze masz zapas mocy, może kupienie takiego zapasu jest dzisiaj tanie. Więc odciążenie serwera nie jest problemem. A jeśli obchodzi Cię wydajność widziana przez użytkownika? To może upewnij się, że zastosowałeś kompresję arkuszy stylów i skryptów, a także sprite'y CSS dla obniżenia liczby żądań. Bo to często przyspieszy ładowanie strony bardziej niż zastosowanie takiego lub innego systemu szablonów (o ile włączone jest cache'owanie).

1

Znałem takich co pieprzyli że nie warto używać PHP bo w ANSI C strony internetowe szybciej działają. Śmiejecie się? Gość przekonał jakimiś benchmarkami szefa i pisaliśmy portal w C. Oczywiście nie będę komentował jakie to problemy niesie (i g**no szybciej działało).

A co do smarty - uzywać. Jest to warstwa stworzona po to aby gosciu pracujący z HTML nie widział PHP i tak ma być. Pracowałem bardzo często z grafikami internetowymi i bardzo często gdy był kod php w HTML to przypadkowo coś zmienili itp. Poza tym kod w smarty dla grafika internetowego jest sto razy czytelniejszy od php (odsylam do przykladow na stronie smarty).

Smarty obsługuje cachowanie (pliki tpl sa tylko za pierwszym razem kompilowane do php - na podobnej zasadzie jak to jest w JSP), wiec pieprzenie o super spowolnieniu przez smarty jest nie na miejscu (i bez cachowania nie dziala wcale wolniej, cachowanie w smarty ma pomoc w wyeliminowaniu zbednych zapytan po stronie php, wiec samo smarty nic tu nie spowalnia). Ktos kto tak mowi nie ma pojecia jak dziala ten mechanizm albo sam tego nie testowal.

Oczywiscie mozna uzyc tak smarty ze bedzie dzialalo wolniej (np. przeniesienie logiki biznesowej do szablonow smarty), ale to nie wina smarty tylko tego ze ktos kto uzywa MVC nie wie i nie rozumie jak go uzywac. Na podobnej zasadzie mozna zamiast jednego zapytania sql z 5 zlaczeniami, zrobic osobno 5 zapytan - tez bedzie dzialac wolniej.

Testowalem rozne podejscia (perl, ansi c, j2ee) i smarty wraz z code igniterem sprawdza sie bardzo dobrze zeby nie powiedziec rewelacyjnie. Lekkie, szybkie, przyjemne, czytelne, latwo rozszerzalne, skalowalne - dla mnie RAD.

pzdr,

0

Nic nie rozumiem z tej Waszej dyskusji.
KUpiłem niedawno baze noclegową - i za jasna chol... nie wiem jak obsługuje się te całe smarty.Czy ktoś mógłby mi łopatologicznie wytłumaczyć o co w tym chodzi?
Pliiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiis.

1 użytkowników online, w tym zalogowanych: 0, gości: 1