Знайомимося із Yii
У даному розділі ми опишемо створення основи додатка, яка буде слугувати нашою відправною точкою.
Для простоти, приймемо, що коренева директорія нашого веб-сервера — /wwwroot,
а відповідна їй URL-адреса — http://www.example.com/.
Встановлення Yii
Спочатку ми встановимо фреймворк.
Завантажимо дистрибутив фреймворку (версії 1.1.1 або вище) з сайту
www.yiiframework.com і розпакуємо в директорію /wwwroot/yii.
Переконаємося, що отримали директорію /wwwroot/yii/framework.
Підказка: Фреймворк Yii може бути встановлений в будь-якому місці файлової системи, не обовʼязково в
wwwroot. Директоріяframeworkмістить весь код фреймворку і є єдиною та необхідною при розгортанні додатка. Одна копія Yii може використовуватися декількома додатками.
Після встановлення Yii відкриємо вікно браузера і перейдемо за адресою
http://www.example.com/yii/requirements/index.php.
Ми побачимо аналізатор вимог, що поставляється разом із релізом Yii.
Для блогу, крім того, що потребує сам фреймворк, для доступу до БД SQLite нам знадобляться розширення PHP pdo та pdo_sqlite.
Створення основи додатка
Скористаємося утилітою командного рядка yiic, що йде в комплекті з фреймворком,
для створення основи додатка в директорії /wwwroot/blog.
yiic може бути використана для генерації коду, що дозволяє зменшити обсяг повторюваного коду, який набирається вручну.
Відкриємо вікно командного рядка і виконаємо наступну команду:
% /wwwroot/yii/framework/yiic webapp /wwwroot/blog Create a Web application under '/wwwroot/blog'? [Yes|No]y …
Підказка: Щоб використовувати утиліту
yiicяк показано вище, шлях до PHP повинен бути прописаний в системній змінній PATH. Якщо це не так, то ми можемо використовувати наступну команду:шлях/до/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog
Спробуємо запустити щойно створений додаток.
Відкриємо браузер і перейдемо за адресою http://www.example.com/blog/index.php.
Ми повинні побачити, що згенерована заготовка вже має 4 повнофункціональних сторінки: «Головна», «Про проект», «Контакти» і «Вхід».
Нижче ми коротко опишемо, що саме ми отримали.
Вхідний скрипт
У нас є файл вхідного скрипта /wwwroot/blog/index.php:
$yii='/wwwroot/framework/yii.php'; $config=dirname(__FILE__).'/protected/config/main.php'; // видалити наступний рядок у режимі production defined('YII_DEBUG') or define('YII_DEBUG',true); require_once($yii); Yii::createWebApplication($config)->run();
Це єдиний скрипт, до якого користувачі мають прямий доступ.
Спочатку скрипт підключає файл початкового завантаження yii.php.
Потім створює екземпляр додатка із заданими налаштуваннями і виконує додаток.
Базова директорія додатку
Також, у нас є базова директорія додатку /wwwroot/blog/protected.
Більша частина нашого коду і даних буде зберігатися в цій директорії і повинна бути захищена від прямого доступу користувачів із веб.
Для веб-сервера Apache ми кладемо в цю директорію файл .htaccess із наступним змістом:
deny from all
Інструкції по налаштуванню захисту директорії від прямого доступу для інших веб-серверів ви можете знайти у відповідній документації.
Послідовність роботи додатка
Щоб зрозуміти роботу Yii, опишемо послідовність роботи нашого додатка при зверненні користувача до сторінки Контакти:
- Користувач запитує URL
http://www.example.com/blog/index.php?r=site/contact; - Для обробки запиту запускається вхідний скрипт;
- Екземпляр додатка створюється і налаштовується із початкових значень,
вказаних в файлі конфігурації
/wwwroot/blog/protected/config/main.php; - Додаток передає обробку запиту певній дії
контролера.
Запит сторінки
Контактиобробляється дієюcontactконтролераsite(методомactionContactкласу/wwwroot/blog/protected/controllers/SiteController.php); - Додаток створює контролер
site(екземпляр класуSiteController) і виконує його; - Виконується дія
contact(методactionContact()класуSiteController); - Метод
actionContact()виводить представленняcontact. При цьому підключається файл представлення/wwwroot/blog/protected/views/site/contact.phpі результат його виконання підставляється в макет/wwwroot/blog/protected/views/layouts/column1.php.