<rmcreative>

RSS

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

  1. Новости Yii 2021, выпуск 3

    20 августа 2021

    Написал свежий выпуск новостей и выложил на хабр. Дело движется. До релиза дожмём.

    Читаем

    Комментировать
  2. Новости Yii 2021, выпуск 1

    5 марта 2021

    Первый выпуск новостей за год. Релизы пакетов, интересное из разработки и немного про финансы.

    Читаем на хабре

    Комментировать
  3. Новости Yii 2020, выпуск 8

    30 декабря 2020

    Успел составить предновогодний выпуск. Тройку полностью не выпустили, но начали. В января будут ещё пакеты.

    Чиатем

    Комментировать
  4. Новости Yii 2020, выпуск 7

    12 ноября 2020

    Вышел очередной выпуск новостей про Yii и новая порция релизов. Опубликовал на хабре.

    Приятного чтения

    Комментировать
  5. Yii 2 за балансировщиком нагрузки

    14 октября 2020

    Система asset-ов Yii 2 очень удобна. Можно расположить ресурсы в пакетах или ближе к исходникам и фреймворк при первом запросе на генерируемую PHP страницу скопирует их (или сделает симлинк) в нужное место.

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

    $path = (is_file($path) ? dirname($path) : $path) . filemtime($path);
    return sprintf('%x', crc32($path . Yii::getVersion() . '|' . $this->linkAssets));

    На каждом экземпляре приложения время будет разным, поэтому ресурсы окажутся в разных директория и если HTML будет запрошен с одного сервера, а ресурсы с других, получим 404.

    Решается просто. В конфиге задаём hashCallback для компонента assetManager:

    'hashCallback' => static function ($path) {
        return hash('md4', $path);
    }

    Но до конца это проблему не решает. Теперь пути совпадают, но при первых запросах получается что в HTML прописан путь к ресурсу с другого сервера, а там ещё запросы не обрабатывались и такого ресурса нет. Опять 404.

    Бороться с этим можно несколькими способами. Первый сводится к тому, что ресурсы собираются на машине разработчика или билд-сервере и раскатываются вместе с приложением. Вариаций тут много:

    1. Отказаться от asset manager, использовать файлы в вебруте.
    2. Использовать webpack или другую систему сборки на node.
    3. Собирать ресурсы командой asset.

    Второй способ — сделать ресурсы общими. Здесь опять несколько вариаций:

    1. Использовать NFS чтобы сделать файловую систему ресурсов общей. Но это не очень быстро и надёжно.
    2. Использовать CDN. Например, ресурсы закинуть на S3 и раздавать оттуда. Заодно получим снижение нагрузки на серверах приложений.

    Последний вариант делается при помощи пакета mikk150/yii2-asset-manager-flysystem. Ставим, настраиваем:

    'assetManager' => [
        'class' => mikk150\assetmanager\AssetManager::class,
        'basePath' => './',
        'baseUrl' => 'Базовый URL статического контента',
        'flySystem' => [
            'class' => creocoder\flysystem\AwsS3Filesystem::class,
            'host' => 'Хост статического контента',
            'key' => 'Ключик S3',
            'secret' => 'Secret S3',
            'region' => 'Регион S3',
            'version' => 'Версия файлов',
            'bucket' => 'Bucket',
            'prefix' => 'Путь к ресурсам' . '/assets',
        ],
    ],
    Комментировать
  6. Новости Yii 2020, выпуск 5

    9 июля 2020

    На самом деле, в этом году перед этим выпуском было ещё четыре, как следует из порядкового номера. Но я был так увлечён Yii 3, что забыл про блог и хабр… Почитать их можно прямо на главной https://yiiframework.ru/. Ну или, если больше нравится английский, на нашей странице на OpenCollective.

    Текущий выпуск:

    Комментировать
  7. YiiConf 2017, слайды, фото и подкаст

    23 июня 2017

    YiiConf завершился.

    Конференция получилась сфокусированной, насыщенной и познавательной. Как для команды Yii, так и для сообщества.

    Спасибо всем слушателям, команде Yii, Дмитрию Елисееву, Максиму Купцову и Михаилу Бакулину, организаторам DevConf.

    8 комментариев
  8. Как не надо писать сравнения. Symfony2 vs Yii: какой фреймворк выбрать в 2015-м году?

    2 сентября 2015

    Почитал свежую статью отличной команды stfalcon. Оформлена она замечательно, читается приятно. В итоге Symfony почти безоговорочно рвёт Yii, но есть «нюансы», которые делают статью некорректной.

    Читаем

    23 комментария
  9. gostash.it

    1 сентября 2015

    Где-то в мае Дамир показал мне проект gostash. В то время он представлял собой что-то вроде твиттера для кода. Предполагалось постить короткий занятный код до 18 строчек.

    Чем-то меня проект зацепил, и я решил помочь.

    Читаем

    7 комментариев
  10. Форматирование сообщений для Yii::t()

    10 августа 2015

    На хабре появилась исключительно подробная статья, разбирающая возможности форматирования сообщений в Yii 2.0 через Yii::t().

    Очень рекомендую: http://habrahabr.ru/post/264009/

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