Bez pisania dodatkowej linijki kodu nasz blog jest gotowy do używania
tematów. Aby użyć nowy
temat musimy przede wszystkim utworzyć temat poprzez napisanie niestandardowego
pliku widoku dla tematu. Na przykład, aby móc używać temat o nazwie classic
,
który używa innego układy strony utworzymy plik układu
/wwwroot/blog/themes/classic/views/layouts/main.php
. Musimy również zmienić konfigurację
aplikacji aby wskazać, że wybraliśmy temat classic
:
return array(
......
'theme'=>'classic',
......
);
Możemy również umiędzynarodowić nasz blog, tak, że każda jego strona może być wyświetlana w innym
języku. Wymaga to przede wszystkim działania w dwóch aspektach. Po pierwsze, możemy
utworzyć plik widoku w innym języku. Na przykład dla strony list
kontrolera PostController
,
możemy utworzyć plik widoku /wwwroot/blog/protected/views/post/zh_cn/list.php
.
Jeśli aplikacja jest skonfigurowana do używania uproszczonego języka chińskiego
(kod języka to zh_cn
), Yii automatycznie użyje tego nowego pliku widoku zamiast
oryginalnego.
Po drugie, możemy utworzyć tłumaczenia komunikatów generowanych przez kod.
Tłumaczenie komunikatów powinno zostać zapisane jako pliki w katalogu
/wwwroot/blog/protected/messages
. Potrzebujemy również zmodyfikować kod, gdzie używane
są łańcuchy znaków poprzez zamknięcie ich w wywołaniu metody Yii::t()
.
Aby uzyskać więcej informacji o umiędzynaradawianiu, spójrz do Przewodnika.
Chociaż framework Yi jest sam w sobie bardzo wydajny, niekoniecznie prawdą jest, że aplikacja napisana w Yii jest wydajna. Jest kilka miejsc w naszym blogu, gdzie możemy zwiększyć wydajność. Na przykład, portlet chmurki tagów może być jednym z wąskich gardeł wydajnościowych ponieważ zawiera on złożone zapytanie do bazy danych oraz złożoną logikę PHP.
Możemy używać wyrafinowanych funkcji buforowania
dostarczanych przez Yii do zwiększenia wydajności. Jednym z najbardziej użytecznych komponentów
Yii jest COutputCache, który buforuje części wyświetlanej strony, tak, że kod
zajmujący się generowaniem fragmentu nie musi być wykonywany dla każdego żądania.
Na przykład w pliku widoku /wwwroot/blog/protected/views/layouts/main.php
możemy
zamknąć portlet chmurki tagów w COutputCache:
if($this->beginCache('tagCloud', array('duration'=>3600))) { $this->widget('TagCloud'); $this->endCache(); }
W powyższym kodzie, dla każdego żądania, wyświetlanie chmurki tagów będzie dostarczane z bufora zamiast generowane w locie. Zbuforowana zawartość pozostanie ważna w buforze na okres 3600 sekund.
Nasza aplikacja posiada jedynie kilka bardzo prostych funkcjonalności. Aby stać się kompletnym systemem blogowym potrzebne są nowe funkcje, na przykład, portlet kalendarza, powiadomienia przez email, kategoryzowanie wiadomości, portlet wiadomości zarchiwizowanych, itp. Pozostawimy implementację tych funkcji zainteresowanym czytelnikom
Signup or Login in order to comment.