Нам очень приятно сообщить о выходе бета-версии фреймворка Yii 2. Вы можете загрузить его с yiiframework.com.
Бета включает в себя сотни новшеств, изменений и исправлений с релиза альфы.
Полный анонс можно прочитать и прокомментировать на хабре.
14 апреля 2014
Нам очень приятно сообщить о выходе бета-версии фреймворка Yii 2. Вы можете загрузить его с yiiframework.com.
Бета включает в себя сотни новшеств, изменений и исправлений с релиза альфы.
Полный анонс можно прочитать и прокомментировать на хабре.
4 апреля 2014
Ориентировочно 30-го мая приеду на UWDC в Челябинск. Расскажу там про Yii 2.0. Доклад будет похож на РИТ++, но, как обычно, будет с улучшениями и поправками на прогресс в коде.
Сайт конференции пока не запущен, но будет по адресу http://2014.uwdc.ru/. Следите.
17 марта 2014
Yii2 перешёл на использование стиля кода PSR-2. Война табов и пробелов не закончится никогда, но быть не как все и терять при этом поддержку инструментов для форматирования и совместимость с умолчаниями IDE не хочется.
11 марта 2014
Буквально несколько минут назад смёржил ветку с изменениями в работе с URL в основной репозиторий Yii2.
Добавлен новый хелпер yii\helpers\Url
и убраны:
yii\heplers\Html::url
. Вместо него yii\helpers\Url::to
.yii\web\Controller::createUrl
и yii\web\Controller::createAbsoluteUrl
. Вместо них yii\helpers\Url::toRoute
.yii\web\Controller::getCanonicalUrl
. Вместо него yii\helpers\Url::canonical
.Пользоваться новым хелпером можно так:
use yii\helpers\Url; echo Url::to(''); // текущий URL echo Url::toRoute(['view', 'id' => 'contact']); // тот же контроллер, другой экшн echo Url::toRoute('post/index'); // тот же модуль, другие контроллер и экшн echo Url::toRoute('/site/index'); // абсолютный роут вне зависимости от текущего контроллера echo Url::toRoute('hi-tech'); // URL для экшна в с регистрозависимым именем `actionHiTech` текущего контроллера echo Url::toRoute(['/date-time/fast-forward', 'id' => 105]); // URL для регистрозависимых экшна и контроллера `DateTimeController::actionFastForward` echo Url::to('@web'); // получаем URL из алиаса echo Url::canonical(); // получаем canonical URL для текущей страницы echo Url::home(); // получаем домашний URL Url::remember(); // сохраняем URL для последующего использования Url::previous(); // получаем ранее сохранённый URL
5 марта 2014
Евгений Кузьминов выпустил дайджест новостей разработки Yii2. Как можно понять из «#6 Март'14», выпуск совсем не первый. Написан качественно и рекомендуется всем, кто интересуется Yii2.
К сожалению, сейчас у разработчиков фреймворка практически не остаётся времени на какое-либо освещение разработки Yii2 и я очень рад, что Евгений продолжает делать это за нас. Спасибо!
16 февраля 2014
Qiang добавил поддержку вложенных транзакций через savepoint-ы:
// верхняя транзакция $transaction1 = $connection->beginTransaction(); try { $connection->createCommand($sql1)->execute(); // внутренняя транзакция $transaction2 = $connection->beginTransaction(); try { $connection->createCommand($sql2)->execute(); $transaction2->commit(); } catch (Exception $e) { $transaction2->rollBack(); } $transaction1->commit(); } catch (Exception $e) { $transaction1->rollBack(); }
15 февраля 2014
При работе с большим количеством данных важно не использовать слишком много памяти. Сегодня Yii2 обзавёлся решением. Работает за раз не со всеми данными, а частями:
use yii\db\Query; $query = (new Query) ->from('tbl_user') ->orderBy('id'); foreach ($query->each() as $user) { // $user — одна строка из tbl_user } foreach ($query->batch(10) as $users) { // $users — массив из 10 строк }
То же работает с Active Record:
foreach (Customer::find()->batch() as $customers) { // $customers — массив из 10 или менее объектов Customer }
2 февраля 2014
Собрал ещё один шаблон для приложения Yii2. Сделан на основе basic, отличается от него минимально возможным количеством зависимостей:
https://github.com/samdark/yii2-minimal
Данный шаблон рекомендуется тем, кто не любит boostrap и всё хочет делать сам. Если же это не про вас, лучше воспользоваться официальными basic или advanced.
12 января 2014
Yii2 перешёл с PSR-0 на недавно принятый PSR-4, благодаря чему из загрузчика классов удалось выкинуть кучу кода, теоретически сделав его быстрее (не замеряли). Также немного уменьшилась вложенность директорий официальных пакетов, что, хоть и не имеет большого значения, делает структуру чуть более простой.
Если вы уже использовали Yii2 через Composer:
composer self-update
.index.php
, index-test.php
и yii
. Там нужно убрать один уровень /../
..gitignore
из vendor
и composer.lock
, делаем заново composer install --prefer-dist
.Ещё одна приятная штука, расширения теперь можно делать по-человечески, складывая классы прямо в корневую директорию репозитория.
8 января 2014
В Active Record Yii2 вернулся JOIN
. Внутри всё значительно проще, чем было в Yii 1.1, но возможностей сильно больше.
Сразу скажу, что поддержка noSQL никуда не делась. Более того, можно в одном «запросе» выбрать JOIN-ом из нескольких SQL-таблиц, а часть связанных данных забрать, например, из MongoDB.
Отличный пример привёл ORey на англоязычном форуме:
// Выбираем MyModel с relation1 и relation2. // Все три забираем запросом с JOIN. $query = MyModel::find() ->joinWith(['relation1', 'relation2']); $countQuery = clone $query; $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 15]); $items = $query ->orderBy($sort->orders) ->offset($pages->offset) ->limit($pages->limit) // Забираем дополнительно relation3 и relation4. // Фильтровать по ним нам не нужно, так что будут // запросы вида WHERE ID IN (1,2,3,4) или аналоги // для noSQL. ->with(['relation3', 'relation4']) ->all();