-[Интернационализация (Intl)](http://php.net/manual/ru/book.intl.php); Yii 2.0 использует расширение PHP `intl`
для различного функционала интернационализации.
Пространства имен
-----------------
Одним из основных изменений в Yii 2.0 является использование пространств имен. Почти каждый класс фреймворка
находится в пространстве имен, например, `yii\web\Request`. Префикс "С" больше не используется в именах классов.
Соглашение именования классов следует структуре папки, в которой располагается класс. Например, `yii\web\Request`
означает, что соответсвующий класс находится в файле `web/Request.php` в папке Yii фреймворка.
(Благодаря загрузчику классов Yii, вы можете использовать любой класс фреймворка без необходимости непосредственно
подключать его).
Компонент и Объект
------------------
В Yii 2.0 класс `CComponent` из версии 1.1 был разделен на два класса: [[yii\base\Object]] и [[yii\base\Component]].
Класс [[yii\base\Object|Object]] является простым базовым классом, который позволяет использовать [геттеры и сеттеры](concept-properties.md) для свойств.
Класс [[yii\base\Component|Component]] наследуется от класса [[yii\base\Object|Object]] и поддерживает [события](concept-events.md) и
[поведения](concept-behaviors.md).
Если вашему классу не нужно использовать функционал событий или поведений, вы можете использовать [[yii\base\Object|Object]] в качестве
базового класса. В основном это случаи, когда классы представляют собой базовые структуры.
Конфигурация объекта
--------------------
Класс [[yii\base\Object|Object]] предоставляет единый способ конфигурирования объектов. Любой дочерний класс [[yii\base\Object|Object]]
может определить конструктор (если нужно) для своей конфигурации следующим образом:
Yii 2.0 осуществляет жадную загрузку (eager loading) связи по другому, в отличие от версии 1.1. В частности, в версии 1.1 для
выбора данных из основной и связанной таблиц будет использован запрос JOIN. В Yii 2.0 будут выполнены два запроса без использования JOIN:
первый запрос возвращает данные для основной таблицы, а второй - для связанной, с помощью фильтрации по первичным ключами основной таблицы.
Вместо того, чтобы возвращать объекты [[yii\db\ActiveRecord|ActiveRecord]], вы можете использовать метод [[yii\db\ActiveQuery::asArray()|asArray()]]
при построении запроса, для выборки большого количества записей. Это заставит вернуть результат запроса в качестве массива, что
может существеннос снизить время, нужное ЦПУ и память, при большом количестве записей. Например:
```php
$customers=Customer::find()->asArray()->all();
```
Еще одно изменение связано с тем, что вы больше не можете определять значения по-умолчанию в качестве свойств.
Вы должны устанавить их в методе `init` вашего класса, если это требуется.
```php
publicfunctioninit()
{
parent::init();
$this->status=self::STATUS_NEW;
}
```
Тажке в версии 1.1 были некоторые проблемы с переопределением конструктора ActiveRecord. Данные проблемы не присутствуют
в версии 2.0. Обратите внимание, что при добавлении параметров в конструктор, вам возможно понадобится переопределить метод
[[yii\db\ActiveRecord::instantiate()]]. Переопределение может не потребоваться, если параметры, передаваемые в конструктор будут
иметь значения по-умолчанию, например `null`.
Существует также множество других улучшений в ActiveRecord. Более детальная информация о конфигурация представлена в разделе [Active Record](db-active-record.md).
Компонент приложения `user`
---------------------------
Класс `CWebUser` в версии 1.1 теперь заменен классом [[yii\web\User]], а также больше не существует класса `CUserIdentity`.
Вместо этого, вы должны предоставить реализацию интерфейса [[yii\web\IdentityInterface]], что гораздо проще в использовании.
Более детальная информация представлена в разделах [Аутентификация](security-authentication.md), [Авторизация](security-authorization.md)
и [Шаблон приложения advanced](tutorial-advanced-app.md).
Разбор и генерация URL
----------------------
Работа с URL в Yii 2.0 аналогична той, что была в версии 1.1. Основное изменение заключается в том, что теперь
поддерживаются дополнительные параметры. Например, если у вас имеется правило, объявленное следующим образом, то
оно совпадет с `post/popular` и `post/1/popular`. В версии 1.1, вам пришлось бы использовать два правила, для получения
того же результата.
```php
[
'pattern'=>'post/<page:\d+>/<tag>',
'route'=>'post/index',
'defaults'=>['page'=>1],
]
```
Более детальная информация представлена в разделе [Разбор и генерация URL](runtime-url-handling.md).
Использование Yii 1.1 вместе с 2.x
----------------------------------
Информация об использовании кода для Yii 1.1 вместе с Yii 2.0 представлена в разделе [Одновременное использование Yii 1.1 и 2.0](extend-using-v1-v2.md).