<rmcreative>

RSS

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

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

  1. Именование версий ПО

    22 мая 2014

    Начиная с Yii 2.0 мы решили придерживаться простого стандарта семантического версионирования или, если кратко, semver. В рабочих проектах у меня он применяется уже давно.

    Стандарт невероятно прост:

    Учитывая номер версии МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ, следует увеличивать:

    1. МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
    2. МИНОРНУЮ версию, когда вы добавляете новый функционал, не нарушая обратной совместимости.
    3. ПАТЧ-версию, когда вы делаете обратно совместимые исправления.

    Дополнительные обозначения для предрелизных и билд-метаданных возможны как дополнения к МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ формату.

    Полный текст на разных языках можно найти на semver.org

    Комментировать
  2. С Yii 1.1 на Yii 2.0, часть 1: PHP

    22 апреля 2014

    Вопрос о переходе с 1.1 на 2.0 всплывает слишком часто, чтобы не разобрать его более детально. Начать, конечно, стоит с самого основного, а именно с PHP.

    В Yii 1.1 использовался PHP 5.2. В некоторых местах можно было использовать элементы из 5.3. В Yii 2.0 используется PHP 5.4. Причём не просто используется, а используется по полной программе.

    Итак, для перехода на 2.0 стоит изучить:

    С Yii 1.1 на Yii 2.0, часть 2: Composer →

    29 комментариев
  3. Буду на DevConf 2014 в Москве

    17 апреля 2014

    14 июня в субботу в Москве пройдёт DevConf, на котором я буду рассказывать про вторую версию Yii (в зале) и, возможно, про обработку ошибок в PHP (на флипчартах).

    Программа всё ещё формируется, но уже довольно интересна. Занятно будет послушать про архитектуру AVITO.ru, платёжные системы, асинхронный PHP, Codeception, Tarantool и другие интересные штуки.

    DevConf всегда отличается особой атмосферой и отличными посиделками после конференции.

    Сайт конференции http://devconf.ru/. Зарегистрироваться можно до 12 июня 2014.

    3 комментария
  4. Yii 2.0 beta

    14 апреля 2014

    Нам очень приятно сообщить о выходе бета-версии фреймворка Yii 2. Вы можете загрузить его с yiiframework.com.

    Бета включает в себя сотни новшеств, изменений и исправлений с релиза альфы.

    Полный анонс можно прочитать и прокомментировать на хабре.

    11 комментариев
  5. Буду на UWDC 2014 в Челябинске

    4 апреля 2014

    Ориентировочно 30-го мая приеду на UWDC в Челябинск. Расскажу там про Yii 2.0. Доклад будет похож на РИТ++, но, как обычно, будет с улучшениями и поправками на прогресс в коде.

    Сайт конференции пока не запущен, но будет по адресу http://2014.uwdc.ru/. Следите.

    11 комментариев
  6. Буду на РИТ++ 2014 в Москве

    31 марта 2014

    Московский РИТ++ в этом году будет первой конференцией, где я появлюсь с докладом. Тема — «Yii 2.0: обзор».

    Конференция пройдёт 14 и 15 апреля. Регистрироваться здесь.

    Программа и описание

    Видео, как обычно, не обещаю, но если будет — выложу.

    Комментировать
  7. nginx, php-fpm, Yii и красивые URL

    28 марта 2014

    Помогал недавно с очень странной проблемой. На сервере были nginx, php-fpm и Yii. Всё работало нормально, но при попытке убрать index.php из URL через showScriptName=false показывалась исключительно главная страница. То есть роутинг вообще не происходил.

    Путём долгого совместного копания в настройках сервера, сравнения с рабочими конфигурациями и гугления успешно забытое решение проблемы вновь нашлось. А именно, в php.ini должна присутствовать строчка cgi.fix_pathinfo=0.

    5 комментариев
  8. Yii2: PSR-4

    12 января 2014

    Yii2 перешёл с PSR-0 на недавно принятый PSR-4, благодаря чему из загрузчика классов удалось выкинуть кучу кода, теоретически сделав его быстрее (не замеряли). Также немного уменьшилась вложенность директорий официальных пакетов, что, хоть и не имеет большого значения, делает структуру чуть более простой.

    Если вы уже использовали Yii2 через Composer:

    1. Выполнить composer self-update.
    2. Правим пути в index.php, index-test.php и yii. Там нужно убрать один уровень /../.
    3. Удаляем всё кроме .gitignore из vendor и composer.lock, делаем заново composer install --prefer-dist.

    Ещё одна приятная штука, расширения теперь можно делать по-человечески, складывая классы прямо в корневую директорию репозитория.

    17 комментариев
  9. 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();

    Официальная документация на тему

    25 комментариев
  10. Уменьшаем 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: доступен минимальный шаблон приложения без тяжёлых компонентов.

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