Yii2 перешёл на использование стиля кода PSR-2. Война табов и пробелов не закончится никогда, но быть не как все и терять при этом поддержку инструментов для форматирования и совместимость с умолчаниями IDE не хочется.
Все заметки с тегом «yii2»
-
Yii2: PSR-2
17 марта 2014
-
Yii2: изменения в работе с URL
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
-
Yii2 дайджест новостей разработки #6 Март'14
5 марта 2014
Евгений Кузьминов выпустил дайджест новостей разработки Yii2. Как можно понять из «#6 Март'14», выпуск совсем не первый. Написан качественно и рекомендуется всем, кто интересуется Yii2.
К сожалению, сейчас у разработчиков фреймворка практически не остаётся времени на какое-либо освещение разработки 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(); }
-
Yii2: batch
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 }
-
Yii2 minimal
2 февраля 2014
Собрал ещё один шаблон для приложения Yii2. Сделан на основе basic, отличается от него минимально возможным количеством зависимостей:
- Без bootstrap. Вместо него свой CSS, который подключается без использования asset-ов.
- Без mailer и страницы контактов.
- Без тестов и инструментов тестирования.
- Без Gii и debug.
https://github.com/samdark/yii2-minimal
Данный шаблон рекомендуется тем, кто не любит boostrap и всё хочет делать сам. Если же это не про вас, лучше воспользоваться официальными basic или advanced.
-
Yii2: PSR-4
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
.
Ещё одна приятная штука, расширения теперь можно делать по-человечески, складывая классы прямо в корневую директорию репозитория.
- Выполнить
-
Yii2: JOIN вернулся
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();
-
Уменьшаем yii2-basic
7 января 2014
В почту прилетел вопрос «какого такого yii2-basic весит 180 мегабайт». Вопрос хороший. Разберём и попробуем разобраться, что же с этим всем делать, если размер критичен.
Итак, 155 мегабайт занимают данные git, которые забираются при установке из composer без флага
--prefer-dist
(добавил его в readme). Осталось 25 мегабайт, что тоже немало.Из них:
Yii + обязательные зависимости 4,9 мб debug-панель и gii 235 кб Twitter Bootstrap 4,5 мб Swiftmailer 6,2 мб Codeception и зависимости 8,6 мб Если нам не нужны какие-то пакеты, правим
composer.json
и удаляем оттуда ненужные нам пакеты (секцииrequire
иrequire-dev
). Удаляемcomposer.lock
и запускаемcomposer install --prefer-dist
.Например, если нам не интересно автоматизированное тестирование, путём удаления из зависимостей Codeception получаем 16 мегабайт вместе с зависимостями и самим basic-шаблоном. При этом приложение остаётся полностью рабочим.
Если в приложении не нужна работа с почтой и Twitter Bootstrap получим 5,3 мегабайта.
UPD: доступен минимальный шаблон приложения без тяжёлых компонентов.
-
Yii 2 alpha
2 декабря 2013
Вышла первая альфа версия Yii 2. Скачать в виде архива её можно с официального сайта. Там же приведены инструкции по установке через Composer.
Yii 2 является полностью переделанной версией одного из самых популярных PHP-фреймворков. В новой версии унаследован общий дух первой версии, а именно стремление к простоте, скорости и расширяемости. В Yii 2 применяются многие возможности PHP 5.4. Фреймворк следует лучшим практикам современной веб-разработки.
Полное описание возможностей вы можете найти в полном руководстве и, в особенности в разделе с отличиями от версии 1.1.
Выпуск альфы является важным событием в разработке Yii 2 и означает, что код достиг определённой степени стабильности. Если вы только начинаете изучать Yii или у ваш проект не ограничен жёсткими временными рамками, можно попробовать новую версию. Не используйте Yii 2 в боевых проектах так как команда фреймворка всё ещё может внести значительные изменения без каких-либо предварительных уведомлений.
В течение двух лет было получено огромное количество кода от сообщества. Спасибо вам, что сделали этот релиз возможным.