Дальнейшие улучшения ==================== Использование тем ----------------- Даже без написания дополнительного кода наше приложение уже готово использовать [темы оформления](/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] beginCache('tagCloud', array('duration'=>3600))) { ?> widget('TagCloud', array( 'maxTags'=>Yii::app()->params['tagCloudCount'], )); ?> endCache(); } ?> ~~~ В коде выше отображение облака тэгов будет получаться из кэша вместо того, чтобы генерироваться для каждого запроса. Кэшируемое содержимое останется валидным в кэше в течение 3600 секунд. Добавление новых особенностей ------------------- У нашего приложения есть только очень основные функциональные возможности. Чтобы стать полноценной системой управления блогом, необходимо больше особенностей, например, портлет календаря, уведомления по электронной почте, категории записей, портлет архивных записей и так далее. Мы оставим возможность реализовать эти особенности заинтересовавшимся читателям.