<rmcreative>

RSS

Все заметки с тегом «Yii»

Можно уточнить:

  1. Выступлю на UWDC'12

    6 февраля 2012

    26 Февраля буду выступать на UWDC'12 на тему «Фреймворки, Yii и работа в команде». Расскажу про Yii, его историю, про то, насколько он вырос и где используется. Также попробую затронуть фундаментальные ошибки Yii 1.1, которые мы попробуем исправить в 2.0.

    Все желающие послушать приглашаются. Конференция обещает быть интересной… Да, видео обещать не буду так как оно куда-то постоянно теряется.

    12 комментариев
  2. YiiTalk, эпизод 2

    24 января 2012

    Сегодня вместе с Юрием Беляковым записался в подкасте YiiTalk, первом русскоязычном подкасте про Yii. Говорили про меня, про Yii и его развитие, немного про вторую версию и программирование в целом.

    Слушаем на podfm

    11 комментариев
  3. Схема обработки ошибок в Yii

    22 января 2012

    На хабре в блоге Yii за время моего отпуска появился подробный разбор того, как работает обработка ошибок в Yii. Если по каким-то причинам пропустили — рекомендую.

    Читаем

    2 комментария
  4. 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. Теперь используя тот же самый подход можно перекрыть классы ядра.

    8 комментариев
  5. Расширение для анализа производительности SQL-запросов для Yii

    24 ноября 2011

    Хорошая вариация на тему профайлера SQL под Yii была выложена на днях Владимиром. Кроме списка самих запросов расширение выводит план выполнения запроса (EXPLAIN).

    Пробуем

    Комментировать
  6. 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, которая используется в библиотеке.

    Данное описание со следующим релизом попадёт в официальный гайд.

    8 комментариев
  7. Yii DB profiler

    14 сентября 2011

    Довёл до ума и выложил профайлер SQL-запросов для Yii.

    Основан на CProfileLogRoute, т.е. всё так же отображает данные внизу страницы. Отличий несколько:

    1. Показываются только SQL-запросы и ничего лишнего.
    2. Вместо общего времени выполнения и потребляемой памяти показываются время выполнения запросов и их количество.
    3. Умеет подсвечивать розовым проблемные запросы. Либо те, которые достаточно долго выполняются, либо те, которые выполняются много раз. Количество повторений и время выполнения настраиваются.

    Пользуемся

    21 комментарий
  8. Yii, получаем количество запросов к базе данных и общее время их выполнения

    14 сентября 2011

    list($queryCount, $queryTime) = Yii::app()->db->getStats();
    echo "Query count: $queryCount, Total query time: ".sprintf('%0.5f',$queryTime)."s";
    2 комментария
  9. Бесплатная глава из Yii 1.1 Application Development Cookbook

    31 августа 2011

    Восьмая глава книги в PDF-формате стала доступна для бесплатного скачивания.

    Называется она «Extending Yii» и рассказывает о написании и распространении расширений и содержит следующие рецепты:

    • Creating model behaviors
    • Creating components
    • Creating reusable controller actions
    • Creating reusable controllers
    • Creating a widget
    • Creating CLI commands
    • Creating fi lters
    • Creating modules
    • Creating a custom view renderer
    • Making extensions distribution-ready
    14 комментариев
  10. Yii 1.1 Application Development Cookbook, финальная версия

    26 августа 2011

    Yii 1.1 Application Development Cookbook Cover

    Вот и вышла финальная версия моей книги про Yii. Про завершение работ я рано радовался. Оказалось, что процесс далеко не закончен и впереди ждала стилистическая правка, ревью и куча других вопросов. Пришлось очень неслабо напрячься, но результат радует: книга вышла не в Сентябре, как планировалось, а в Августе.

    По этому поводу обновил сайт книги:

    Кстати, с оценкой объёма вышла промашка. В финале 392 страницы. Изначально ожидалось около 300.

    Да, скорее всего, выложу там же одну главу в открытый доступ.

    Про процесс написания этой книги можно почитать на хабре.

    34 комментария