Даже без написания дополнительного кода, наше приложение уже готово
использовать темы оформления. Для использования
темы, мы, в основном, должны разработать её, написав кастомизированные файлы
представлений темы. Например, для использования темы classic
,
использующей другой макет страницы, мы создали бы файл представления макета
/wwwroot/blog/themes/classic/views/layouts/main.php
. Мы также должны изменить
конфигурацию приложения для указания, что мы выбрали тему classic
:
return array(
......
'theme'=>'classic',
......
);
Мы также можем интернационализировать наше приложение, чтобы его страницы могли отображаться на различных языках. В основном, это включает в себя два аспекта.
Во-первых, мы можем создать файлы представлений на различных языках. Например,
для страницы list
контроллера PostController
, мы можем создать файл
представления /wwwroot/blog/protected/views/post/zh_cn/list.php
. Когда
приложение сконфигурировано на использование упрощенного китайского языка
(языковой код - zh_cn
), Yii будет автоматически использовать новый файл
представления вместо оригинального.
Во-вторых, мы можем создать перевод сообщений, сгенерированных кодом. Перевод
сообщений должен быть сохранен в файлах директории
/wwwroot/blog/protected/messages
. Также мы должны изменить код, в котором мы
используем текстовые строки, заключив их в вызов метода Yii::t()
.
За деталями об интернационализации обратитесь к разделу интернационализация (I18N) руководства.
Хотя сама структура фреймворка Yii очень эффективна, не обязательно, что приложение, написанное с использованием Yii, также эффективно. Есть несколько мест в нашем приложении, где мы можем улучшить работу. Например, портлет облака тэгов может быть одним из узких мест в работе, потому что он использует сложный запрос к базе данных и логику PHP.
Мы можем использовать сложные
кэширующие особенности, предоставленные Yii,
для улучшения работы. Один из самых полезных компонентов в Yii - это
COutputCache, который кэширует фрагмент отображения страницы так, чтобы
основной код, генерирующий фрагмент, не выполнялся в каждом запросе. Например,
в файле макета /wwwroot/blog/protected/views/layouts/main.php
мы можем
заключить портлет облака тэгов в COutputCache:
if($this->beginCache('tagCloud', array('duration'=>3600))) { $this->widget('TagCloud'); $this->endCache(); }
В коде выше отображение облака тэгов будет получаться из кэша вместо того, чтобы генерироваться для каждого запроса. Кэшируемое содержимое останется валидным в кэше в течение 3600 секунд.
У нашего приложения есть только очень основные функциональные возможности. Чтобы стать полноценной системой управления блогом, необходимо больше особенностей, например, портлет календаря, уведомления по электронной почте, категории записей, портлет архивных записей и так далее. Мы оставим возможность реализовать эти особенности заинтересовавшимся читателям.
Signup or Login in order to comment.