Подальші поліпшення

Використання тем #

Навіть без написання додаткового коду наш додаток вже готовий використовувати теми оформлення. Для використання теми, ми, в основному, повинні розробити її, написавши змінені файли представлень теми. Наприклад, для використання теми classic, яка використовує інший макет сторінки, ми створили б файл представлення макету /wwwroot/blog/themes/classic/views/layouts/main.php. Ми також повинні змінити конфігурацію додатка для вказівки, що ми обрали тему classic:

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) керівництва.

Поліпшення продуктивності використанням кеша #

Хоча сам Yii досить швидкий, не обовʼязково, що додаток, написаний з використанням Yii, буде працювати також ефективно. Є кілька місць у додатку, де ми можемо поліпшити роботу. Наприклад, портлет хмари тегів може бути одним із вузьких місць у роботі, тому що він використовує складний запит до бази даних і логіку PHP.

Ми можемо використовувати складні особливості при кешуванні, надані Yii, для поліпшення роботи. Один із найбільш корисних компонентів в Yii — це COutputCache, який кешує фрагмент представлення сторінки так, щоб основний код, який генерує фрагмент, не виконувався при кожному запиті. Наприклад, у файлі макету /wwwroot/blog/protected/views/layouts/column2.php ми можемо укласти портлет хмари тегів у COutputCache:

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

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

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

У коді вище відображення хмари тегів буде отримуватися із кешу замість того, щоб генеруватися для кожного запиту. Кешований вміст залишиться валідним у кеші протягом 3600 секунд.

Додавання нових особливостей #

У нашого додатка є тільки дуже основні функціональні можливості. Щоб стати повноцінною системою керування блогом, необхідно більше особливостей, наприклад, портлет календаря, сповіщення по електронній пошті, категорії записів, портлет архівних записів і так далі. Ми залишимо можливість реалізувати ці особливості зацікавленим читачам.


Для чого реклама?