<rmcreative>

RSS

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

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

  1. 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 комментариев
  2. 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 комментариев
  3. Уменьшаем 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 комментария
  4. 2013, итоги и планы

    31 декабря 2013

    Новый год уже очень скоро, так что заранее поздравляю всех читателей с окончанием 2013. Пришла пора вспомнить, что же было в нём интересного и подумать, что бы хотелось сделать в следующем 2014.

    Читаем

    16 комментариев
  5. Перспективы HHVM 2013

    23 декабря 2013

    Довольно много времени прошло с последнего раза как я писал про реализацию PHP в исполнении Facebook. С того времени многое поменялось.

    1. Юнит-тесты по 21 OpenSource проекту проходят на 99%. Тесты Yii проходят на 99,11%.
    2. Ещё сильнее ускорили исполнение кода.
    3. Добавили поддержку FastCGI, так что можно спокойно оттестировать свой проект под Apache или nginx.

    В планах у команды HHVM на 2014 ещё большее ускорение виртуальной машины и полная совместимость с оригинальным PHP. Настрой серьёзный. В начале месяца Josh Waltzman из команды HHVM связывался с членами php-fig, в том числе и со мной. В планах ещё много дополняющих PHP вкусняшек: строгая типизация, коллекции, быстрый статический анализ. Жаль, что поддержки Windows в планах пока нет по техническим причинам. Это прилично сократит аудиторию...

    Если в 2012 HHVM был годен только на использование внутри Facebook, то под конец 2013 перспективы его использования для своих проектов выглядят вполне реальными.

    7 комментариев
  6. Предновогодние скидки у PACKT

    21 декабря 2013

    У издательства PACKT до третьего января включительно приличные скидки на книги. Не исключение и моя англоязычная книга рецептов, которую сейчас можно заполучить всего за €3.65 вместо €20.99.

    7 комментариев
  7. Yii 2 alpha

    2 декабря 2013

    Вышла первая альфа версия Yii 2. Скачать в виде архива её можно с официального сайта. Там же приведены инструкции по установке через Composer.

    Yii 2 является полностью переделанной версией одного из самых популярных PHP-фреймворков. В новой версии унаследован общий дух первой версии, а именно стремление к простоте, скорости и расширяемости. В Yii 2 применяются многие возможности PHP 5.4. Фреймворк следует лучшим практикам современной веб-разработки.

    Полное описание возможностей вы можете найти в полном руководстве и, в особенности в разделе с отличиями от версии 1.1.

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

    В течение двух лет было получено огромное количество кода от сообщества. Спасибо вам, что сделали этот релиз возможным.

    29 комментариев
  8. Убираем дубликаты URL в Yii

    17 ноября 2013

    Не первый раз спрашивают как убрать дубликаты URL в приложении на Yii при использовании красивых URL и showScriptName = false. Yii при включении данной опции генерирует все URL как надо, но позволяет обращаться к страницам и так и так:

    http://example.com/blog/tag/Yii http://example.com/index.php/blog/tag/Yii

    На самом деле никакой проблемы в этом нет потому как ни одной ссылки на второй тип URL не будет и он, соответственно, не проиндексируется. Но так как вопросы поступают и SEO-шники настаивают, вот ответ в виде gist.

    Сохраняем в виде protected/components/DuplicateFilter.php, прописываем в метод filters контроллеров и забываем о проблеме.

    14 комментариев
  9. PHP Frameworks Day, отчёт

    15 октября 2013

    На днях завершился Киевский PHP Frameworks Day. Основной темой конференции, как следует из названия, были фреймворки, их использование и PHP в общем. Было около 450 человек. Несколько больше, чем планировали организаторы. Прошло замечательно.

    Читаем

    25 комментариев
  10. php-fig

    23 сентября 2013

    Некоторое время назад я присоединился к php-fig в качестве представителя Yii.

    Группа занимается обсуждением и принятием межфреймворковых стандартов и уже успела совершить революцию в мире автозагрузки и принять ещё несколько интересных, хоть и немного спорных, стандартов.

    Обсуждения ведутся в группе Google. Читать и писать может кто угодно. Официальное присоединение даёт право голоса в процессе принятия очередного стандарта. На данный момент в группе 27 голосующих.

    В обсуждении сейчас:

    В стадии голосвания новый стандарт автозагрузки PSR-4. От меня получил +1.

    Сразу успокою (или разочарую): Yii не будет безоговорочно применять все PSR. На первом месте остаётся простой и понятный интерфейс и оптимальность способа решения задачи. На данный момент рассматриваем целесообразность изменения интерфейса для кеширования.

    11 комментариев