Дальнейшие улучшения
====================

Использование тем
-----------------

Даже без написания дополнительного кода наше приложение уже готово
использовать [темы оформления](/doc/guide/ru/topics.theming). Для использования
темы, мы, в основном, должны разработать её, написав кастомизированные файлы
представлений темы. Например, для использования темы `classic`,
использующей другой макет страницы, мы создали бы файл представления макета
`/wwwroot/blog/themes/classic/views/layouts/main.php`. Мы также должны изменить
конфигурацию приложения для указания, что мы выбрали тему `classic`:

~~~
[php]
return array(
	…
	'theme'=>'classic',
	…
);
~~~


Интернационализация
-------------------

Мы также можем интернационализировать наше приложение, чтобы его страницы могли
отображаться на различных языках. В основном, это включает в себя два аспекта.

Во-первых, мы можем создать файлы представлений на различных языках. Например,
для страницы `index` контроллера `PostController`, мы можем создать файл
представления `/wwwroot/blog/protected/views/post/zh_cn/index.php`. Когда
приложение сконфигурировано на использование упрощенного китайского языка
(языковой код — `zh_cn`), Yii будет автоматически использовать новый файл
представления вместо оригинального.

Во-вторых, мы можем создать перевод сообщений, сгенерированных кодом. Перевод
сообщений должен быть сохранен в файлах директории
`/wwwroot/blog/protected/messages`. Также мы должны изменить код, в котором мы
используем текстовые строки, заключив их в вызов метода `Yii::t()`.

За деталями об интернационализации обратитесь к разделу
[интернационализация (I18N)](/doc/guide/ru/topics.i18n) руководства.


Улучшение производительности использованием кэша
------------------------------------------------

Хотя сам Yii [довольно быстр](http://www.yiiframework.com/performance/), не обязательно,
что приложение, написанное с использованием Yii, будет работать также эффективно. Есть
несколько мест в приложении, где мы можем улучшить работу. Например,
портлет облака тэгов может быть одним из узких мест в работе, потому что он
использует сложный запрос к базе данных и логику PHP.

Мы можем использовать сложные
[кэширующие особенности](/doc/guide/ru/caching.overview), предоставленные Yii,
для улучшения работы. Один из самых полезных компонентов в Yii — это
[COutputCache], который кэширует фрагмент отображения страницы так, чтобы
основной код, генерирующий фрагмент, не выполнялся в каждом запросе. Например,
в файле макета `/wwwroot/blog/protected/views/layouts/column2.php` мы можем
заключить портлет облака тэгов в [COutputCache]:

~~~
[php]
<?php if($this->beginCache('tagCloud', array('duration'=>3600))) { ?>

	<?php $this->widget('TagCloud', array(
		'maxTags'=>Yii::app()->params['tagCloudCount'],
	)); ?>

<?php $this->endCache(); } ?>
~~~

В коде выше отображение облака тэгов будет получаться из кэша вместо того,
чтобы генерироваться для каждого запроса. Кэшируемое содержимое останется
валидным в кэше в течение 3600 секунд.


Добавление новых особенностей
-------------------

У нашего приложения есть только очень основные функциональные возможности.
Чтобы стать полноценной системой управления блогом, необходимо больше
особенностей, например, портлет календаря, уведомления по электронной почте,
категории записей, портлет архивных записей и так далее. Мы оставим
возможность реализовать эти особенности заинтересовавшимся читателям.