Быстро создать приложение CRUD на Yii

Yii — это высокопроизводительная инфраструктура, быстрый, безопасный и хорошо подходит для приложений Web 2.0. Если выполнять инструкции, вы будете писать гораздо меньше кода (чем меньше кода, тем меньше ошибок!). Кроме того, yiiframework предлагает множество удобных встроенных функций. В этой статье Я покажу основу использования Yii и создание системы CRUD.

Оглавление:
  1. Установка Yii
  2. Создать приложение
  3. Разработка приложения CRUD
  4. Шаг 1
  5. Шаг 2
  6. Шаг 3
  7. В заключение

Установка Yii

Нужны: Apache, PHP 5.1 или выше и MySQL. Скачиваем последнюю версию Yii с официального сайта, которая на момент написания статьи 1.1.13.

Разархивируйте ZIP-файл, чтобы получить папку yii-1.1.13.e9e4a0 (идентификатор версии может отличаться в зависимости от версии загрузки) и переименуем папку в yii, затем переходим в корневой каталог. У меня wampserver: D:\wamp\www поэтому файлы будут лежать D:\wamp\www\yii. На протяжении всей статьи Я буду в систем как <YiiRoot>, вы сможете легко выполнять действия даже если ваши установки другие.

Далее, мы должны проверить какие функции Yii, будет поддерживать наша система. Путь http://localhost/yii/requirements/ в вашем браузере чтобы увидеть детали. Поскольку мы будем работать с базами данных MySQL, у вас должно быть расширение MYSQL PDO включенным.

Быстро создать приложение CRUD с Yii
Какие функции Yii, поддерживает наша система

рекомендуется держать Yii файлы вне корневом каталоге. После регистрации вы можете переместить его в другое место.

к меню ↑

Создать приложение

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

<YiiRoot>\framework\yiic webapp yiitest

Это позволит создать основу приложения под названием yiitest. Внутри вы найдете index.php который служит в качестве вступительного сценария; он принимает запросы пользователей и решает, какой контроллер должен обработать запрос.

Yii на основе MVC и принципы ООП, так что вы должны быть хорошо знакомыми с этими темами.

Адреса Yii выглядят так: http://localhost/yiitest/index.php?r=controllerID/actionID. Например, в системе блогов URL может быть: http://localhost/yiitest/index.php?r=post/create. post — это ID контроллера. Входной скрипт решает какой контроллер и метод вызвать основываясь на ID.

Мы можем создать файл презентации для нашего контроллера под называнием create.php это в описанных выше каталогах, и затем показать этот вид пользователям, для этого нужно написать следующий код для actionCreate():

public function actionCreate()
  {
  $this->render('create');
  }

Также возможна передача дополнительных данных для презентации, когда это необходимо. Это делается следующим образом:

$this->render('create', array('data' => $data_item));

Что внутри файла, мы можем просмотреть через переменную $data.

Кроме того, если вы хотите удобный URL для адресов, вы можете раскомментировать в protected/config/main.php следующее:

'urlManager'=>array(
  'urlFormat'=>'path',
  'rules'=>array(
    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
  )

Теперь адрес URL будет выглядеть так: http://localhost/yiitest/controllerID/actionID.

к меню ↑

Разработка приложения CRUD

Теперь вы знаете, важность конвенций Yii, пришло время приступить к работе с CRUD. В этом разделе мы будем усовершенствовать простую систему, где пользователь может выполнять операции CRUD (создание, загрузка, обновление и удаление) на своем блоге.

к меню ↑

Шаг 1

Создать базу данных в MySQL yiitest и внутри её создайте таблицу с названием постов. Таблица будет иметь всего 3 колонки для наших целей: id, название, и содержание.

CREATE TABLE posts (
  id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
  title VARCHAR(100),
  content TEXT
)

Откройте файл приложения protected/config/main.php и раскомментируйте следующие:

'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=testdrive,
'emulatePrepare' => true,
'username' => 'root',
'password' => ",
'charset' => 'utf8',
)

Заменить testdrive на название нашей базы данных yiitest. И предоставляем необходимые учетные данные для подключения Yii.

к меню ↑

Шаг 2

В Yii каждая таблица базы данных должна иметь соответствующую модель класса типа CActiveRecord. Преимуществом является то, что мы не должны иметь дело с таблицами баз данных напрямую. Вместо этого мы можем работать с объектами модели, которые соответствуют строкам таблицы. Например, Post класс модель для таблицы сообщений. Объект этого класса представляет собой строку из таблицы поста и имеет атрибуты, которые представляют собой значения в столбике.

Для быстроты создания модели мы будем использовать веб-инструмент Yii, gii. Этот инструмент можно использовать для создания моделей, контроллеров и форм для операций CRUD. Для того что бы использовать gii в вашем проекте, находим в приложении конфигурационный файл и раскомментируем следующее добавив пароль.

'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>ваш пароль к доступу gii,
'ipFilters'=>array('127.0.0.1′,'::1′),
)

Что бы в войти в gii, используйте адрес URL: http://localhost/yiitest/index.php?r=gii. Если вы используете удобный URL, тогда так: http://localhost/yiitest/gii.

Нажмите на Модель Генератора. gii будет спрашивать у вас имя таблицы; введите posts имя таблицы и модели названия поста. Затем нажмите кнопку создать, чтобы создать модели.

Смотрите protected/model и вы увидите этот файл Post.php.

к меню ↑

Шаг 3

Теперь нажмите на кнопку Генератора CRUD. Введите название модели, как Post. Контроллер ID будет автоматически заполнятся. Это означает, что новый контроллер будет создан с названием PostController.php.

Нажмите на кнопку Генерировать.

Теперь у вас есть новое приложение CRUD! Для проверки нажмите на кнопку Попробовать сейчас. Что бы управлять свойствами вам нужно будет зарегистрироваться admin/admin.

Для создания нового сообщения вам будет необходим доступ к http://localhost/yiitest/post/create и для обновления определенного поста, путь в браузере: http://localhost/yiitest/post/update/postID.
Подобным образом вы можете составить список всех постов и удалить некоторые из них или все.

к меню ↑

В заключение

Yii очень мощный когда речь идет о разработке проектов Web 2.0. Мы только что видели как легко создать полнофункциональную систему CRUD всего за несколько минут! Yii может избавить вас большой работы, потому что вам не придется начинать с нуля. Yii даёт нам начало а мы можем продолжить как нам нужно.