В данном разделе мы опишем создание основы приложения, которая будет служить
нашей отправной точкой. Для простоты, примем, что корневая директория нашего
веб-сервера — /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
:
$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
.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.