mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-13 11:37:15 +01:00
89 lines
5.5 KiB
Plaintext
89 lines
5.5 KiB
Plaintext
Дальнейшие улучшения
|
||
====================
|
||
|
||
Использование тем
|
||
-----------------
|
||
|
||
Даже без написания дополнительного кода наше приложение уже готово
|
||
использовать [темы оформления](/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 секунд.
|
||
|
||
|
||
Добавление новых особенностей
|
||
-------------------
|
||
|
||
У нашего приложения есть только очень основные функциональные возможности.
|
||
Чтобы стать полноценной системой управления блогом, необходимо больше
|
||
особенностей, например, портлет календаря, уведомления по электронной почте,
|
||
категории записей, портлет архивных записей и так далее. Мы оставим
|
||
возможность реализовать эти особенности заинтересовавшимся читателям.
|
||
|
||
<div class="revision">$Id: final.future.txt 2017 2010-04-05 17:12:13Z alexander.makarow $</div> |