У даному розділі ми опишемо створення основи додатка, яка буде слугувати нашою відправною точкою.
Для простоти, приймемо, що коренева директорія нашого веб-сервера — /wwwroot
,
а відповідна їй URL-адреса — http://www.example.com/
.
Спочатку ми встановимо фреймворк.
Завантажимо дистрибутив фреймворку (версії 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
:
<?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, опишемо послідовність роботи нашого додатка при зверненні користувача до сторінки Контакти
:
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
.