Хроники Yii3
632 subscribers
46 photos
1.72K links
Описание процесса разработки фреймворка из первых рук 😎

Обсуждение:
https://t.iss.one/yii3ru

Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
#yiisoftLogTargetDb #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Logging DB Target 1.0

Цель логов для библиотеки Yii Logging, которая отправляет сообщения в базу данных.

Пакет построен на базе Yii Database и позволяет использовать для хранения логов любую поддерживаемую им базу данных:

• MySQL,
• MariaDB,
• MSSQL,
• Oracle,
• PostgreSQL,
• SQLite.
🔥72👍2
#yiisoftCacheDb #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Cache DB Handler 1.0

Реализация PSR-16 для хранения кэша в базе данных на основе пакета Yii Database. Может использоваться как отдельно, так и совместно с библиотекой Yii Caching.

В качестве хранилища кэша можно использовать любую базу данных, поддерживаемую Yii DB:

• MySQL,
• MariaDB,
• MSSQL,
• Oracle,
• PostgreSQL,
• SQLite.
🔥92
#yiisoftMiddlewareDispatcher #МинорныйРелиз #Релиз

🎁 Yii Middleware Dispatcher 5.1

• Добавлен композитный резолвер параметров CompositeParametersResolver, позволяющий одновременно использовать несколько резолверов.

• Добавлена поддержка psr/http-message версии ^2.0.

• Улучшена производительность фабрики мидлварей.

😎 Релиз подготовили Сергей Предводителев и Сергей Шугаев.
🔥62
#yiisoftProxyMiddleware

Создали репозиторий для пакета Yii Proxy Middleware.

В новый пакет переедут две мидлвари из Yii Middleware:
TrustedHeaderProtocolResolver,
TrustedHostsNetworkResolver.
👍61
#yiisoftMiddleware #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Middleware 1.0

Первая стабильная версия пакета Yii Middleware.

Содержит набор следующих middleware:

- CorsAllowAll. Добавляет CORS заголовки, снимающие все ограничения, в HTTP ответ.
- ForceSecureConnection. Перенаправляет небезопасные запросы с HTTP на HTTPS и добавляет заголовки в соответствии с политикой безопасности.
- HttpCache. Реализует кэширование на клиентской стороне с использованием HTTP заголовков Last-Modified и ETag.
- IpFilter. Добавляет доступ в соответствии с указанными IP диапазонами и отвечает кодом 403 (Forbidden) для всех остальных IP адресов.
- Locale. Поддерживает роутинг с включением локали и конфигурирует генератор URL.
- Redirect. Генерирует и добавляет заголовок Location в HTTP ответ.
- Subfolder. Поддерживает роутинг для случаев, когда точка входа приложения находится не в корневой папке.
- TagRequest. Помечает запрос случайным значением, которое в дальнейшем может быть использовано для его идентификации.

Покрытие юнит тестами - полное, статический анализ соответствует требованиям Psalm 1 уровня.

На финальной стадии разработки было решено middleware, связанные с прокси, вынести в отдельный пакет - Yii Proxy Middleware.
🔥15👍92👏2
#yiisoftYiiConsole #МинорныйРелиз #Релиз

🎁 Yii Console 2.1

• Улучшен вывод команды serve.

• У команды serve добавлена опция --xdebug, которая устанавливает переменные окружения XDEBUG_MODE=debug и XDEBUG_TRIGGER=yes.

• Добавлена поддержка : в качестве разделителя в имени команды. В следующей мажорной версии поддержка /, скорей всего, будет удалена.

• Добавлено кое-что ещё 😀
🔥92
🌿 #Полезное

На хабре опубликована статья Валерия Горбачева (один из ключевых разработчиков Yii DB) на основе одноимённого доклада на HighLoad++ 2022.

📗 Хождение по граблям PDO: что скрывают за собой современные PHP ORM

За приятной абстракцией скрывается множество нюансов и неочевидных штук. В деле абстрагирования БД всё крайне не просто.
🔥172
#yiisoftYiiMiddleware #ПатчРелиз #Релиз

🎁 Yii Middleware 1.0.1

• Удалена зависимость yiisoft/network-utilities.

• Исправлены некорректные редиректы для GET-запросов в мидлвари Locale.

• Отключен поиск локали в куках, если не установлен параметр $cookieDuration в мидлвари Locale.
🔥82
#yiisoftI18n #МинорныйРелиз #Релиз

🎁 Yii Internationalization Library 1.2

• Добавлен провайдер локали LocaleProvider.

• Минимальная версия PHP поднята до ^8.0.
👍62
🛑 #yiisoftYiiGiiFrontend

Разработка Gii Frontend прекращена. Пакет отправлен в архив.

Фронт для Gii будет реализован в Yii Development Panel.
👍6
#yiisoftLocaleMiddleware

Yii Locale Middleware

Создан репозиторий под мидлварь Locale, которая переедет сюда из пакета Yii Middleware.

Планируется серьёзно переработать мидлварь и сделать её более настраиваемой и расширяемой. В связи с этим было принято решение выделить её в отдельный пакет.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
#yiisoftI18n #ПатчРелиз #Релиз

🎁 Yii Internationalization Library 1.2.1

• Исправлена ошибка в LocaleProvider: метод isDefaultLocale() возвращал некорректное значение, если явно указать локаль, которая соответствует локали по умолчанию.
👍32
#yiisoftProxyMiddleware #FirstRelease #MajorRelease #Release

🎁 Proxy Middleware 1.0

Первая стабильная версия пакета Proxy Middleware. Пакет содержит middleware классы, связанные с прокси и реализующие PSR-15:

- TrustedHeaderProtocolResolver.
- TrustedHostsNetworkResolver.

Они были перенесены из пакета Yii Middleware и доработаны.

TrustedHeaderProtocolResolver

Устанавливает протокол в запросе сервера в соответствии со значением из специального доверяемого заголовка, такого, как например, X-Forwarded-Proto.

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

TrustedHostsNetworkResolver

Сканирует всю цепочку соединения и извлекает данные из forwarded заголовков с учётом доверяемых IP. В дополнении к этому, структура всех элементов проходит тщательную валидацию, потому что данным из заголовков нельзя доверять. Извлекаются следующие данные:

- IP.
- Протокол.
- Хост.
- Порт.
- Идентификатор IP - неизвестный или обфусцированный. Используется с RFC заголовком Forwarded.

Для forwarded заголовков можно использовать как одиночный заголовок Forwarded, стандартизированный в RFC 7239, так и группы заголовков, предоставляющих данные отдельно.

Типичная область применения - приложение за балансировщиком нагрузки.

Покрытие кода и MSI очень близко к 100%, статический анализ отвечает требованиям уровня 1 Psalm.
👍8🔥51
#yiisoftVarDumper #МинорныйРелиз #Релиз

🎁 Yii VarDumper 1.6

• В дампе анонимных функций удалены лишние пробелы.

• Реализован специализированный вывод дампа для объектов DateTime и DateTimeImmutable. Теперь это выглядит так:

new \DateTimeImmutable('2023-07-01T11:53:03.953+00:00', new \DateTimeZone('UTC'))
👍92🔥1
#yiisoftAuthJwt #ПатчРелиз #Релиз

🎁 Yii Auth JWT 2.0.1

• Явно прописаны зависимости psr/http-message, yiisoft/http и web-token/jwt-core.
🔥5👍2
#yiisoftStrings #МинорныйРелиз #Релиз

🎁 Yii Strings 2.2

• Добавлен класс CombinedRegexp, позволяющий оптимизировать сопоставление с несколькими регулярными выражениями. Также реализован класс MemoizedCombinedRegexp, работающий аналогично, но дополнительно кэширующий результаты сопоставления.

Подробнее о концепции можно почитать в блоге Никиты Попова: Fast request routing using regular expressions.

• В StringHelper добавлены методы trim(), ltrim() и rtrim(), позволяющие удалить все пробельные символы Unicode в начале/конце строки.

• В методе Inflector::toSnakeCase() добавлен булев параметр $strict, меняющий поведение метода:

- true (по умолчанию)
createMyDTOcreate_my_d_t_o

- false
createMyDTO
create_my_dto

В следующей мажорной версии пакета значение по умолчанию будет изменено на false.

• Минимальная версия PHP поднята до 8.0 и выполнен рефакторинг кода.

• Встроенные функции PHP теперь вызываются в корневом пространстве имён, что в некоторых случаях даёт выигрыш по производительности.
🔥101👍1
#yiisoftMiddlewareDispatcher #МинорныйРелиз #Релиз

🎁 Yii Middleware Dispatcher 5.2.0

• Добавлена возможность использовать классы, реализующие PSR-интерфейс RequestHandlerInterface, в качестве мидлварей.

• Добавлена возможность использовать классы с магическим методом __invoke() в качестве мидлварей.
🔥3👍1
#yiisoftYiiMiddleware #ПатчРелиз #Релиз

🎁 Yii Middleware 1.0.2

• В мидлвари CorsAllowAll добавлен заголовок Access-Control-Expose-Headers: *.

• В мидлвари Locale проверка игнорирования запроса перенесена в начало.

• В мидлвари Locale событие SetLocaleEvent и изменение локали в генераторе URL теперь происходит до вызова последующих мидлварей.
🔥2👏1
#yiisoftSockets

Yii Sockets

Новый пакет для кода, который будет работать с различными типами сокетов (udp, tcp, …). Сейчас такой функционал частично реализован в Yii VarDumper и требуется в debug-пакетах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤‍🔥2
#yiisoftVarDumper #МинорныйРелиз #Релиз

🎁 Yii VarDumper 1.7

• Добавлены обработчики вывода дампа. Из коробки доступны:

- EchoHandler — вывод с помощью echo в стандартный поток вывода stdout (используется по умолчанию);

- StreamHandler — вывод с помощью json_encode в сокеты;

- CompositeHandler — выводы сразу в несколько обработчиков.

• Добавлена функция dump() (алиас к существующей ранее функции d()).
🔥6
#yiisoftCacheFile #МинорныйРелиз #Релиз

🎁 Yii Cache File Handler 3.1

• В конструктор FileCache добавлен параметр $directoryMode (по умолчанию, 0755), позволяющий указать права на директорию с кэшем при её создании.

• Метод FileCache::withDirectoryMode() помечен устаревшим.

• Выполнен небольшой рефакторинг кода с использованием возможностей PHP 8.
🔥4👍1