И ещё один выпуск подкаста про Yii — YiiTalk. Участвуют Юрий Беляков и Константин Перминов.
Все заметки с тегом «Yii»
-
YiiTalk, эпизод 3
18 февраля 2012
-
Yii переехал на GitHub
16 февраля 2012
Yii официально целиком и полностью переехал на GitHub. Перенесён весь код с полной историей, а также трекер со всеми тикетами.
Очень многие об этом просили и команда Yii думает, что это верный ход, который позволит сообществу в полной мере участвовать в разработке фреймворка и ускорить темпы его развития.
Тем, кто использует SVN следует обновить URL на https://github.com/yiisoft/yii/trunk/.
p.s. если что-то прошло не совсем гладко и вы это заметили, не стесняйтесь, пишите.
-
Yii 1.1.10
13 февраля 2012
Вышел релиз 1.1.10 PHP фреймворка Yii. В данной версии, в основном, исправлены ошибки в
CActiveForm
,CJuiDatePicker
и невозможность запуска сyiilite.php
. -
Скорость eval и анонимных функций
11 февраля 2012
Всё ещё используете
eval
там, где его можно не использовать? Вот ещё одна причина посмотреть в сторону PHP 5.3 и анонимных функций:$count = 50; $start = microtime(true); $y = 0; for($i = 0; $i < $count; $i++) { eval('++$y;'); } printf("#1, result is %d, done in %f\n", $y, microtime(true) - $start); $start = microtime(true); $y = 0; for($i = 0; $i < $count; $i++) { $f = function() use (&$y) { return ++$y; }; $f(); } printf("#2, result is %d, done in %f\n", $y, microtime(true) - $start);
На выходе получаем:
d:\src>php callback_performance.php #1, result is 50, done in 0.000415 #2, result is 50, done in 0.000270 d:\src>php callback_performance.php #1, result is 50, done in 0.000413 #2, result is 50, done in 0.000261 d:\src>php callback_performance.php #1, result is 50, done in 0.000412 #2, result is 50, done in 0.000273
Кроме того, что анонимные функции удобней, они ещё и быстрее.
-
Выступлю на UWDC'12
6 февраля 2012
26 Февраля буду выступать на UWDC'12 на тему «Фреймворки, Yii и работа в команде». Расскажу про Yii, его историю, про то, насколько он вырос и где используется. Также попробую затронуть фундаментальные ошибки Yii 1.1, которые мы попробуем исправить в 2.0.
Все желающие послушать приглашаются. Конференция обещает быть интересной… Да, видео обещать не буду так как оно куда-то постоянно теряется.
-
YiiTalk, эпизод 2
24 января 2012
Сегодня вместе с Юрием Беляковым записался в подкасте YiiTalk, первом русскоязычном подкасте про Yii. Говорили про меня, про Yii и его развитие, немного про вторую версию и программирование в целом.
-
Схема обработки ошибок в Yii
22 января 2012
На хабре в блоге Yii за время моего отпуска появился подробный разбор того, как работает обработка ошибок в Yii. Если по каким-то причинам пропустили — рекомендую.
-
Yii 1.1.9
1 января 2012
Вышла стабильная версия Yii 1.1.9. В данном релизе около 60 улучшений и исправленных ошибок.
Полный список изменений можно посмотреть в соответствующем файле. Перед обновлением с более ранних версий важно ознакомиться с инструкциями.
Русскоязычная документация, как обычно, находится в полностью актуальном состоянии. Кроме того, поправлены все найденные на момент релиза опечатки. Спасибо всем, кто использует Orphus на yiiframework.ru.
Рассмотрим наиболее интересные изменения.
Более удобный способ определения
through
в отношениях ActiveRecordОпция
though
была добавлена в версии 1.1.7, но синтаксис был не слишком удобен, так что было решено сделать его более явным. В текущей версии используется следующий синтаксис:'comments'=>array(self::HAS_MANY,'Comment',array('key1'=>'key2'),'through'=>'posts'),
В приведённом выше
array('key1'=>'key2')
:key1
является ключом, определённым в отношении, котрое указано вthrough
(в нашем случае этоposts
).key2
является ключом, определённым в модели, на которую указывает отношение (в нашем случае этоComment
).
through
можно использовать как дляHAS_ONE
, так и дляHAS_MANY
.Подробнее данная возможность описана в разделе Реляционная Active Record полного руководства.
Поддержка групп условий в Model::relations()
Теперь можно использовать группы условий при определении отношений модели:
'recentApprovedComments'=>array(self::BELONGS_TO, 'Post', 'post_id', 'scopes' => array('approved', 'recent')),
При использовании лишь одной группы условий её можно указать как строку.
Возможность сделать JOIN между моделями по заданным ключам
В данной версии стало возможым создание отношений по заданной паре PK->FK не опираясь на схему данных. Это означает, что можно, например, задать следующее отношение для модели
Day
:'jobs'=>array(self::HAS_MANY, 'Job', array('date' => 'target_date')),
В данном случае
Day
может содержать несколькоJob
ов. При этом они не связаны привычным образом. Мы задали ключ в видеarray('fk'=>'pk')
, то есть на выходе мы получим SQL вродеSELECT * FROM day t JOIN job ON t.date = job.target_date
Возможность перекрыть классы ядра при помощи Yii::$classMap
Начиная с 1.1.5 в Yii была возможность заранее импортировать классы и использовать их без явного импорта или
include
. Теперь используя тот же самый подход можно перекрыть классы ядра. -
Расширение для анализа производительности SQL-запросов для Yii
24 ноября 2011
Хорошая вариация на тему профайлера SQL под Yii была выложена на днях Владимиром. Кроме списка самих запросов расширение выводит план выполнения запроса (EXPLAIN).
-
Yii: автозагрузка библиотек, использующих namespace
3 ноября 2011
Для загрузки библиотек, использующих namespace по соглашению PSR-0 (например, Zend Framework 2 или Symfony2) необходимо сначала зарегистрировать корень библиотеки как псевдоним пути.
Для примера попробуем использовать Imagine. Скорируем директорию
Imagine
вprotected/vendors
. Ну и само использование:Yii::setPathOfAlias('Imagine',Yii::getPathOfAlias('application.vendors.Imagine')); // Далее стандартный код из README Imagine: // $imagine = new Imagine\Gd\Imagine(); // и т.д.
В приведённом коде имя псевдонима пути должно совпадать с первой частью namespace, которая используется в библиотеке.
Данное описание со следующим релизом попадёт в официальный гайд.