Основы Yii Framework для чайников
Yii Framework представляет собой один из лучших PHP-фреймворков, предназначенных для разработки больших веб-приложений. В цикле «Yii Framework для чайников» мы научимся разворачивать yii-приложение на сервере, узнаем как работать с фреймворком и познакомимся с основными возможностями, которые он предоставляет. Все это я постараюсь рассказать максимально просто и наглядно.
Развертка Yii-приложения
Для того, чтобы использовать Yii Framework необходимы:- Веб-сервер с предустановленным PHP версии 5.1 и выше.
- Базовые знания PHP, объектно-ориентированного программирования и паттерна MVC.
- Архив с самим фреймворком. Можно скачать с официального сайта.
- Текстовые файлы CHANGELOG, LICENSE, README, и UPGRADE, содержание которых очевидно из названий.
- Папку demos, содержащую четыре демо-проекта (блог, телефонную книгу, игру «Виселица» и простой «Hello, world!»).
- Папку framework с самим фреймворком.
- Папку requirements с тестами совместимости фреймворка и хостинга.
/srv/www/site.com/Чтобы файлы фреймворка не были доступны из браузера, поместим папку framework в каталог
/srv/www/Для того, чтобы развернуть yii-приложение воспользуемся командной строкой. Из корня выполним следующие команды в терминале:
cd /srv/www/site.com/framework/app /srv/www/site.comПри этом в папке сайта будет развернуто демонстрационное yii-приложение и выставлены требуемые права на папки и файлы.
php -f yiic web
Структура Yii-приложения
Рассмотрим папки, находящиеся в каталоге /srv/www/site.com/- assests — файлы, которые генерирует фреймворк в процессе работы.
- css — стили.
- images — изображения.
- protected — основная папка приложения. Ее рассмотрим подробнее.
- themes — тема фреймворка
- commands — приложения для управления фреймворком через консоль.
- components — различные компоненты.
- config — конфигурационные файлы.
- controllers — контроллеры (MVC).
- data — SQLite база данных.
- etensions — расширения для фреймворка.
- messages — мультиязычность.
- migrations — миграции.
- models — модели (MVC).
- runtime — временные файлы, создаваемые фреймворком.
- tests — тесты.
- views — представления (MVC).
Настройка Yii-приложения
Любые взаимодействия с пользователем в yii-приложении происходят через bootstrap-файл index.php<code class="php">$yii=dirname(__FILE__).'/../../framework/yii.php'; //Определяем расположение фреймворка $config=dirname(__FILE__).'/protected/config/main.php'; //Определяем местоположение файла конфигурации defined('YII_DEBUG') or define('YII_DEBUG',true); //Режим отладки defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); //Определение количества уровней в стеке вызовов, которые будут отображаться в логах. Стек вызовов - это история подключения файлов и функций require_once($yii); Yii::createWebApplication($config)->run(); //Запускаем приложение </code>Большинство настроек находятся в файле /config/main.php. Файл конфигурации возвращает многомерный ассоциативный массив настроек, некоторые из которых по умолчанию предопределены.
<code class="php">return array ( 'name'=>'Мой первый сайт на Yii Framework!', // Название приложения 'defaultController' => 'site', // Контроллер, загружаемый по умолчанию 'modules'=>array( 'gii'=>array( // Модуль генерации кода, который можно использовать 'class'=>'system.gii.GiiModule', 'password'=>'YourPassword', 'ipFilters'=>array(), ), ), 'components'=>array( 'urlManager'=>array( // Компонент, изменяющий URL-адреса 'urlFormat'=>'path', 'rules'=>array( '<controller:w+>/<id:d+>'=>'<controller>/view', '<controller:w+>/<action:w+>/<id:d+>'=>'<controller>/<action>', '<controller:w+>/<action:w+>'=>'<controller>/<action>', ), ), 'db'=>array( // Параметры доступа к MySQL базе данных 'connectionString' => 'mysql:host=localhost;dbname=mydatabase', 'emulatePrepare' => true, 'username' => 'root', 'password' => 'mypassword', 'charset' => 'utf8', ), ), 'params'=>array( // Параметры. Можно вызывать как Yii::app()->params['Имя параметра'] 'adminEmail'=>'my@email.com', ), ); </code>
Создание БД для будущего приложения
В качестве примера мы будем работать с базой данных, содержащей некоторое подобие хабра-комментариев и хабра-пользователей. Наглядно ее можно представить следующим образом:SQL-запросы для создания соответствующих таблиц:
<code class="sql">CREATE TABLE Users ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20) NOT NULL, email VARCHAR(60) NOT NULL, karma SMALLINT NULL, raiting SMALLINT NULL, registerDate DATETIME NULL ) CREATE TABLE Comments ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, user MEDINT UNSIGNED NOT NULL, raiting SMALLINT NULL, date DATETIME NULL ) </code>
Заключение
В следующей статье мы создадим модель, представление и контроллер для работы с базой данных.
0 комментариев