![]() |
![]() |
-lukasamd- |
![]()
Post
#1
|
Goście ![]() |
Witam,
nazwa tematu niewiele może mówić, więc już opisuję sprawę. Mam serwis, który kiedyś był zakładany na php-fusion. Obecnie z oryginalnego silnika nic nie zostało - wprowadziłem masę zmian, niektóre mechanizmy w ogóle przebudowałem, jeszcze inne wyrzuciłem. Obok serwisu jest forum działające na phpBB3, użytkownicy zakładają konta tylko na forum. Ostatnio pomyślałem o pewnej integracji np. komentowanie na stronie bez podawania nicka, jeżeli jest się zalogowanym na forum. Nie było z tym problemów i działa odpowiednio. Zastanawiałem się od dłuższego czasu nad wdrożeniem w serwisie smarty, w szczególności ze względu na bardzo efektywny cache na plikach, w którym można wszystko bardzo wybiórczo ustawiać. Po integracji sesji z phpbb3, mam dostęp z poziomu serwisu do większości elementów phpbb3. Przykładowo, serwis miał swoje funkcje od obsługi bazy (proceduralne), zaś obecnie dostępny jest obiekt $db z nieco większymi możliwościami i korzystający z mysqli. To samo tyczy się wbudowanego w skrypt cache oraz systemu templatek. No i tu moje pytanie do bardziej doświadczonych, bo sam nie wiem już co będzie lepsze: czy w wypadku serwisu dokładać jeszcze smarty i w nim realizować pełne cachowanie np. artykułów, czy może jednak użyć phpbb3 i połączenia typu: serializowane dane dla templatek (cache na plikach z phpbb3) + skompilowane templatki Oczywiście chyba dobrym rozwiązaniem byłoby wywalenie nadmiarowych elementów takich jak ta proceduralna obsługa bazy - ogrom użytecznych funkcji i tak jest pod ręką, więc chyba warto skorzystać... Alternatywnym rozwiązaniem jest ograniczenie integracji sesji do wymaganego minimum, czyli zrobienie kopii common.php i wywalenie wszystkiego, co nie jest niezbędne (o ile coś można wywalić), choć nie jestem pewien, czy jest sens bawić się w 2 systemy templatek. Do wydajności obu rozwiązań nie mam zbytnio uwag - nieco to testowałem i zarówno smarty jak i phpbb3 pozwalają na niezłe odciążenie. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Jeśli najważniejszym argumentem przemawiającym za Smarty ma być system cache, to daj sobie spokój z jednym i z drugim. Pewnie, że można wbudowywać wózki tramwajowe w pralki, które przyspieszą ich transport po torach tramwajowych, ale chyba lepiej jest wozić je własnym samochodem, albo w ostateczności normalnym tramwajem; przynajmniej nie będą zawadzać, gdy będziesz już chciał ustawić ją w mieszkaniu. Schodząc do świata programowania, cache to zupełnie inna funkcjonalność, która powinna leżeć w kompetencjach komponentu/biblioteki stworzonej specjalnie do tego celu, która może być co najwyżej podpięta poprzez jakiś port do systemu szablonów (szablonów, a nie jakichś "templatek"!). Inaczej dochodzisz do absurdu, którego chcesz uniknąć, czyli kilku różnych, nadmiarowych API do realizowania tego samego. Chcesz cache'ować treść szablonu - używasz jednego systemu, chcesz cache'ować jakieś wewnętrzne dane, musisz użyć drugiego, mimo iż technicznie jest to dokładnie to samo i powinno być zarządzane tak samo. Sam system cache w Smartym też jest wyjątkowo patologiczny, ponieważ jest on na sztywno wbudowany w klasę główną i nie da rady z nim zrobić niczego więcej ponad to, co zaplanowali twórcy.
Inna sprawa, że skoro już decydujesz się na system szablonów z autorskim językiem, powinieneś szukać takiego, który faktycznie zwiększa produktywność programisty i poprawia jakość kodu w porównaniu do PHP. Małe, prymitywne oraz źle zaprojektowane biblioteki nie są w stanie tego zapewnić i po początkowym zachwycie programiści zacinają się na prostych problemach, których nie da się elegancko rozwiązać, zrażają się, wracają do PHP i rozpowszechniają różne mity o tego typu bibliotekach. System z phpBB3 jest strasznie ubogi, Smarty - źle zaprojektowany (ubogi w sumie też), a demonem szybkości też nie jest, zwłaszcza w wersji 3. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.09.2025 - 20:40 |