Написал свежий выпуск новостей и выложил на хабр. Дело движется. До релиза дожмём.
Все заметки с тегом «Yii2»
-
Новости Yii 2021, выпуск 3
20 августа 2021
-
Новости Yii 2021, выпуск 1
5 марта 2021
Первый выпуск новостей за год. Релизы пакетов, интересное из разработки и немного про финансы.
-
Новости Yii 2020, выпуск 8
30 декабря 2020
Успел составить предновогодний выпуск. Тройку полностью не выпустили, но начали. В января будут ещё пакеты.
-
Новости Yii 2020, выпуск 7
12 ноября 2020
Вышел очередной выпуск новостей про Yii и новая порция релизов. Опубликовал на хабре.
-
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.
Бороться с этим можно несколькими способами. Первый сводится к тому, что ресурсы собираются на машине разработчика или билд-сервере и раскатываются вместе с приложением. Вариаций тут много:
- Отказаться от asset manager, использовать файлы в вебруте.
- Использовать webpack или другую систему сборки на node.
- Собирать ресурсы командой
asset
.
Второй способ — сделать ресурсы общими. Здесь опять несколько вариаций:
- Использовать NFS чтобы сделать файловую систему ресурсов общей. Но это не очень быстро и надёжно.
- Использовать 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', ], ],
-
Новости Yii 2020, выпуск 5
9 июля 2020
На самом деле, в этом году перед этим выпуском было ещё четыре, как следует из порядкового номера. Но я был так увлечён Yii 3, что забыл про блог и хабр… Почитать их можно прямо на главной https://yiiframework.ru/. Ну или, если больше нравится английский, на нашей странице на OpenCollective.
Текущий выпуск:
-
YiiConf 2017, слайды, фото и подкаст
23 июня 2017
YiiConf завершился.
Конференция получилась сфокусированной, насыщенной и познавательной. Как для команды Yii, так и для сообщества.
- Слайды докладов доступны в программе.
- Пётр Мязин записал специальный выпуск пятиминутки PHP, посвящённый целиком YiiConf.
- Фотоотчёт доступен на flickr.
- Все фотки архивом.
Спасибо всем слушателям, команде Yii, Дмитрию Елисееву, Максиму Купцову и Михаилу Бакулину, организаторам DevConf.
-
Как не надо писать сравнения. Symfony2 vs Yii: какой фреймворк выбрать в 2015-м году?
2 сентября 2015
Почитал свежую статью отличной команды stfalcon. Оформлена она замечательно, читается приятно. В итоге Symfony почти безоговорочно рвёт Yii, но есть «нюансы», которые делают статью некорректной.
-
gostash.it
1 сентября 2015
Где-то в мае Дамир показал мне проект gostash. В то время он представлял собой что-то вроде твиттера для кода. Предполагалось постить короткий занятный код до 18 строчек.
Чем-то меня проект зацепил, и я решил помочь.
-
Форматирование сообщений для Yii::t()
10 августа 2015
На хабре появилась исключительно подробная статья, разбирающая возможности форматирования сообщений в Yii 2.0 через
Yii::t()
.Очень рекомендую: http://habrahabr.ru/post/264009/