Основы Yii Framework для чайников

от автора

Yii Framework представляет собой один из лучших PHP-фреймворков, предназначенных для разработки больших веб-приложений. В цикле «Yii Framework для чайников» мы научимся разворачивать yii-приложение на сервере, узнаем как работать с фреймворком и познакомимся с основными возможностями, которые он предоставляет. Все это я постараюсь рассказать максимально просто и наглядно.

Развертка Yii-приложения

Для того, чтобы использовать Yii Framework необходимы:

  1. Веб-сервер с предустановленным PHP версии 5.1 и выше.
  2. Базовые знания PHP, объектно-ориентированного программирования и паттерна MVC.
  3. Архив с самим фреймворком. Можно скачать с официального сайта.

Скачанный архив содержит следующие элементы:

  1. Текстовые файлы CHANGELOG, LICENSE, README, и UPGRADE, содержание которых очевидно из названий.
  2. Папку demos, содержащую четыре демо-проекта (блог, телефонную книгу, игру «Виселица» и простой «Hello, world!»).
  3. Папку framework с самим фреймворком.
  4. Папку requirements с тестами совместимости фреймворка и хостинга.

Будем считать, что мы работаем в операционной системе семейства UNIX и путь до нашего сайта:

/srv/www/site.com/

Чтобы файлы фреймворка не были доступны из браузера, поместим папку framework в каталог

/srv/www/

Для того, чтобы развернуть yii-приложение воспользуемся командной строкой. Из корня выполним следующие команды в терминале:

cd /srv/www/site.com/framework/
php -f yiic webapp /srv/www/site.com

При этом в папке сайта будет развернуто демонстрационное yii-приложение и выставлены требуемые права на папки и файлы.

Структура Yii-приложения

Рассмотрим папки, находящиеся в каталоге /srv/www/site.com/

  1. assests — файлы, которые генерирует фреймворк в процессе работы.
  2. css — стили.
  3. images — изображения.
  4. protected — основная папка приложения. Ее рассмотрим подробнее.
  5. themes — тема фреймворка

Рассмотрим папки в каталоге /srv/www/yoursite.com/protected/

  1. commands — приложения для управления фреймворком через консоль.
  2. components — различные компоненты.
  3. config — конфигурационные файлы.
  4. controllers — контроллеры (MVC).
  5. data — SQLite база данных.
  6. etensions — расширения для фреймворка.
  7. messages — мультиязычность.
  8. migrations — миграции.
  9. models — модели (MVC).
  10. runtime — временные файлы, создаваемые фреймворком.
  11. tests — тесты.
  12. views — представления (MVC).

Настройка Yii-приложения

Любые взаимодействия с пользователем в yii-приложении происходят через bootstrap-файл index.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(); //Запускаем приложение 

Большинство настроек находятся в файле /config/main.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', ), ); 

Создание БД для будущего приложения

В качестве примера мы будем работать с базой данных, содержащей некоторое подобие хабра-комментариев и хабра-пользователей. Наглядно ее можно представить следующим образом:

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 ) 

Заключение

В следующей статье мы создадим модель, представление и контроллер для работы с базой данных.


ссылка на оригинал статьи https://habr.com/ru/articles/575754/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *