Yii 2.0.10

Вийшла нова версія PHP-фреймворку Yii, що включає в себе більше 80 поліпшень і виправлень. Інструкції по установці і оновлення можна знайти на за адресою. Варто зазначити, що у реліз увійшли чотири невеликі зміни, які можуть вплинути на роботу існуючих додатків. Обов'язково прочитайте UPGRADE.md.
Дякую чудовому спільноті за відмінні пулл-реквесты і обговорення. Без вас цього релізу не було б! За процесом розробки Yii 2 можна почати стежити, поставивши зірочку на GitHub. Підписуйтесь на наш Twitter і Facebook. Обговорити реліз можна в коментарях.
Повний список змін можна знайти на CHANGELOG. Далі ми розглянемо найбільш цікаві.
URL
Новий клас
yii\web\UrlNormalizer
дозволяє нормалізувати запити на URI з присутнім або відсутнім слешем в кінці, що досить важливо для пошукової оптимізації. Детальний опис можна знайти в розділі «URL normalization» офіційного керівництва.
Міграції
Крім невеликих виправлень міграції отримали і досить значне поліпшення. Тепер можна запускати міграції з декількох місць одночасно, якщо використовувати для них простору імен. Щоб це зробити, необхідно налаштувати властивість
migrationNamespaces
консольного контролера:
return [
'controllerMap' => [
'migrate' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationNamespaces' => [
'app\migrations',
'some\extension\migrations',
],
//'migrationPath' => null, //можна відключити міграції без просторів імен
],
],
];

Обробка помилок
Помилки при запису і читанні сесії тепер не ховаються в налагоджувальному режимі, що дозволяє легко виявити більшість проблем на етапі розробки.
Request
З'явився новий метод
yii\web\Request::getHostName()
повертає ім'я хоста для поточного запиту.
POST запити, кодовані
multipart/form-data
(наприклад, завантаження файлів) тепер можна розпарсити через
yii\web\MultipartFormDataParser
. Для того, щоб цим скористатися, ви повинні налаштувати
Request::parsers
наступним чином:
return [
'components' => [
'request' => [
'parsers' => [
'multipart/form-data' => 'yii\web\MultipartFormDataParser'
],
],
// ...
],
// ...
];

Після цього слід викликати
Request::getBodyParams()
і запит буде розібраний у відповідні змінні. У тому числі в
$_FILES
.
Бази даних
Було додано нову поведінку для ActiveRecord.
yii\behaviors\AttributeTypecastBehavior
дозволяє автоматично приводити типи значень атрибутів.
Типи задаються через
attributeTypes
:
use yii\behaviors\AttributeTypecastBehavior;

class Item extends \yii\db\ActiveRecord
{
public function behaviors()
{
return [
'typecast' => [
'class' => AttributeTypecastBehavior::className(),
'attributeTypes' => [
'amount' => AttributeTypecastBehavior::TYPE_INTEGER,
'price' => AttributeTypecastBehavior::TYPE_FLOAT,
'is_active' => AttributeTypecastBehavior::TYPE_BOOLEAN,
],
'typecastAfterValidate' => true,
'typecastBeforeSave' => false,
'typecastAfterFind' => false,
],
];
}

// ...
}

Якщо
attributeTypes
не задано, значення буде визначатися автоматично на основі правил валідації:
use yii\behaviors\AttributeTypecastBehavior;

class Item extends \yii\db\ActiveRecord
{
public function rules()
{
return [
['amount', 'integer'],
['price', 'number'],
['is_active', 'boolean'],
];
}

public function behaviors()
{
return [
'typecast' => [
'class' => AttributeTypecastBehavior::className(),
// 'attributeTypes' буде вказано автоматично на основі `rules()`
],
];
}

// ...
}

Також був доданий
yii\mutex\OracleMutex
— реалізація блокування можливостями Oracle.
Консоль
В консолі тепер можна викликати опис команди передавши
h
або
--help
.
Тестування
Шаблони додатків були змінені, щоб працювати з недавніми змінами в Codeception. Детальніше про це можна прочитати в новому розділі на сайті Codeception: «Yii 2.0 quickstart guide». Якщо ви використовуєте шаблон проекту advanced, ознайомтеся з його документацією з тестування.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.