Полное руководство по Yii 2.0

Фреймворк Yii 2

Полное руководство по Yii 2.0

Данное руководство выпущено в соответствии с положениями о документации Yii.

All Rights Reserved.

2014 © Yii Software LLC.


Введение

Первое знакомство

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

Обработка запросов

Основные понятия

Работа с базами данных

Получение данных от пользователя

Отображение данных

Безопасность

Кеширование

Веб-сервисы REST

Тестирование

  • Обзор
  • Настройка тестового окружения
  • Модульные тесты
  • Функциональные тесты
  • Приёмочные тесты
  • Фикстуры

Специальные темы

Хелперы


Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Репликация и разделение запросов yii на чтение и запись

Репликация и разделение запросов на чтение и запись

Многие СУБД поддерживают репликацию баз данных для лучшей доступности базы данных и уменьшения времени ответа сервера. С репликацией базы данных, данные копируются из master servers на slave servers. Все вставки и обновления должны происходить на основном сервере, хотя чтение может производится и с подчинённых серверов.

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

yii Работа со схемой базы данных

Работа со схемой базы данных

Yii DAO предоставляет целый набор методов для управления схемой базы данных, таких как создание новых таблиц, удаление столбцов из таблицы, и т.д.. Эти методы описаны ниже:

  • [[yii\db\Command::createTable()|createTable()]]: создание таблицы
  • [[yii\db\Command::renameTable()|renameTable()]]: переименование таблицы
  • [[yii\db\Command::dropTable()|dropTable()]]: удаление таблицы
  • [[yii\db\Command::truncateTable()|truncateTable()]]: удаление всех записей в таблице
  • [[yii\db\Command::addColumn()|addColumn()]]: добавление столбца
  • [[yii\db\Command::renameColumn()|renameColumn()]]: переименование столбца
  • [[yii\db\Command::dropColumn()|dropColumn()]]: удаление столбца
  • [[yii\db\Command::alterColumn()|alterColumn()]]: преобразование столбца
  • [[yii\db\Command::addPrimaryKey()|addPrimaryKey()]]: добавление первичного ключа
  • [[yii\db\Command::dropPrimaryKey()|dropPrimaryKey()]]: удаление первичного ключа
  • [[yii\db\Command::addForeignKey()|addForeignKey()]]: добавление внешнего ключа
  • [[yii\db\Command::dropForeignKey()|dropForeignKey()]]: удаление внешнего ключа
  • [[yii\db\Command::createIndex()|createIndex()]]: создания индекса
  • [[yii\db\Command::dropIndex()|dropIndex()]]: удаление индекса

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Привязка параметров Yii 2.0

Привязка параметров

При создании команды из SQL запроса с параметрами, вы почти всегда должны использовать привязку параметров для предотвращения атак через SQL инъекции. Например,

$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=:id AND status=:status')
           ->bindValue(':id', $_GET['id'])
           ->bindValue(':status', 1)
           ->queryOne();

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Выполнение Не-SELECT запросов в yii 2

Выполнение Не-SELECT запросов

В методах queryXyz(), описанных в предыдущих разделах, вызываются SELECT запросы для извлечения данных из базы. Для запросов не возвращающих данные, вы должны использовать метод [[yii\db\Command::execute()]]. Например,

Yii::$app->db->createCommand('UPDATE post SET status=1 WHERE id=1')
   ->execute();

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Использование префиксов таблиц в yii 2

Использование префиксов таблиц

Если большинство ваших таблиц использует общий префикс в имени, вы можете использовать свойство Yii DAO для указания префикса.

Сначала, укажите префикс таблиц через свойство [[yii\db\Connection::tablePrefix]]:

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Указание уровня изоляции yii2

Указание уровня изоляции

Yii поддерживает настройку [уровня изоляции] для ваших транзакций. По умолчанию, при старте транзакции, будет использован уровень изоляции настроенный в вашей базе данных. Вы можете переопределить уровень изоляции по умолчанию, как указано ниже:

$isolationLevel = \yii\db\Transaction::REPEATABLE_READ;

Yii::$app->db->transaction(function ($db) {
    ....
}, $isolationLevel);
 
// или

$transaction = Yii::$app->db->beginTransaction($isolationLevel);

Подкатегории